模板内容填充:全库 × 占位换成完整虚构示例,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 正文 × 清零;真实信息零泄漏。
This commit is contained in:
2026-10-27 12:50:02 +08:00
parent cc0dfb7257
commit 8984b93ee7
40 changed files with 551 additions and 357 deletions
+34 -23
View File
@@ -4,10 +4,15 @@
XeLaTeX 模板。原文件是学校统一的 `.doc` 表(7 列 × 18 行的 16 周教学日历 +
课程考核说明 + 签字栏),本目录把它做成可直接编译的 LaTeX 版。
> **本模板不含任何真实课程数据。** 课程名、开课号、教师、学分、学时、
> 人数、学期、周次日期、章节名、作业编号**全部是虚构占位符**(`××××`、
> `000000000000`、`×`)。原 `.doc` 是一份**填过的实例**,本模板只复刻
> **本模板不含任何真实课程数据。** 原 `.doc` 是一份**填过的实例**,本模板只复刻
> 它的版式,一个字段都没带过来 —— 见下面「真实数据零泄漏」。
>
> 但样张**不是满篇叉号**:为了能看出排版效果,填了一份**完整的虚构课程**——
> 《数字逻辑》2025 秋学期、计算机科学与技术学院、任课教师「张远航」、
> 86 人、4 学分 64 学时、开课号 `080502101231`,16 周周次与章节内容全部写满
> (含每章作业编号)。这套设定与 [`成绩构成说明/`](../成绩构成说明/)、
> [`试卷归档封面/`](../试卷归档封面/)、[`试卷/`](../试卷/) 是**同一门课**,
> 四份文档放在一起看是自洽的。
> 与 [`试卷归档封面/`](../试卷归档封面/)、[`试卷归档目录/`](../试卷归档目录/)
> 的关系:三件同属教务处下发的表格套件(附件1 封面、附件2 归档目录、
@@ -39,22 +44,26 @@ xelatex 课程教学日历.tex
### 课程信息
改 `.tex` 开头的宏:
改 `.tex` 开头的宏(下面注释里的值是**样张实际用的虚构值**,不是占位符):
```latex
\newcommand{\calcno}{附件3} % 附件编号
\newcommand{\calcname}{××××} % 课程名称
\newcommand{\calyear}{20××} % 学年
\newcommand{\calseason}{×} % 季学期(春/秋)
\newcommand{\caldept}{××××学院(系)} % 开课单位
\newcommand{\calcodenum}{000000000000} % 开课号(12 位)
\newcommand{\calteacher}{×××} % 任课教师
\newcommand{\calcredit}{×.×} % 课程学分
\newcommand{\calhour}{00} % 总学时
\newcommand{\calstudent}{000} % 学生人数
\newcommand{\calassess}{××考试} % 考核方式
\newcommand{\calcname}{数字逻辑} % 课程名称
\newcommand{\calyear}{2025} % 学年
\newcommand{\calseason}{秋} % 季学期(春/秋)
\newcommand{\caldept}{计算机科学与技术学院(系)} % 开课单位
\newcommand{\calcodenum}{080502101231} % 开课号(12 位)
\newcommand{\calteacher}{张远航} % 任课教师
\newcommand{\calcredit}{4.0} % 课程学分
\newcommand{\calhour}{64} % 总学时
\newcommand{\calstudent}{86} % 学生人数
\newcommand{\calassess}{闭卷考试} % 考核方式
```
> ⚠️ 改课程名 / 教师名时注意**字数**:表头标题、日期列宽都是按 4 字课程名、
> 3 字教师名标定的。课程名超过 6 字可能让「中国海洋大学 ○○ 课程教学日历」
> 那行折行,教师名超过 4 字会挤压签字栏。改完翻到 PDF 看一眼再走。
签字栏的「年 月 日」**没有对应的宏**,因为那是手写填写的空位,
模板中保持印刷好的「年」「月」「日」三个字,中间留白给老师签日期。
@@ -391,18 +400,20 @@ Word 的 pt 是 PostScript point(1/72 英寸),TeX 默认的 pt 是 TeX poi
## 真实数据零泄漏
原 `.doc` 是一份**填过的实例**(真实课程名、开课号、教师姓名、人数、
年份、16 周真实日期与章节名)。本模板把每一个字段都换成了占位符。
年份、16 周真实日期与章节名)。本模板把这些字段**全部换掉**了:
换成一组同样完整、但纯属编造的课程数据(见开头那段),字段一个没留。
已 grep 确认以下关键词在 `oucal.sty` 与 `课程教学日历.tex` 中**零命中**:
已逐类 grep 确认以下**类别**在 `oucal.sty` 与 `课程教学日历.tex` 中零命中:
原件课程名、原件开课号、原件教师姓名、原件年份、原件周次日期、
原件章节名、原件学部名、原件考核方式。
```
数字逻辑 080502101231 杨永全 2021 2022 逻辑代数
卡诺图 触发器 时序线路 组合线路 信息科学与工程学部 闭卷考试
```
> ⚠️ 为什么是「换掉」而不是「打叉」:这张表**16 行格子、每行 3~4 个字段**,
> 全打叉的话整张表是灰的,既看不出周次排布,也判断不出某行内容多了会不会
> 撑高行高(本表的行高是写死的 `ht=` 最小高,内容超了会顶出去)。
> 填满一遍才发现「有的周章节名写两行,有的写一行」正是原件的真实形态。
内容里的「××××基础」「×××设计」等也都是通用占位(原件的真实章节名是
「逻辑代数基础」「组合线路设计」等,已全部抽象掉)。**替换成你自己课程的
内容时,注意不要把这些真实信息再写回模板提交。**
**替换成你自己课程的内容时,注意不要把原件的真实信息再写回模板提交。**
`git diff` 里出现真实课程名 / 教师名就等于泄了。
## 字体
Binary file not shown.
+58 -68
View File
@@ -26,16 +26,16 @@
% ⚠️ 下面全部是虚构值,请逐项替换。不要把真实信息留在模板里提交。
%======================================================================
\newcommand{\calcno}{附件3} % 附件编号
\newcommand{\calcname}{××××} % 课程名称(4 字示例)
\newcommand{\calyear}{20××} % 学年
\newcommand{\calseason}{×} % 季学期(春/秋)
\newcommand{\caldept}{××××学院(系)} % 开课单位
\newcommand{\calcodenum}{000000000000} % 开课号(12 位数字)
\newcommand{\calteacher}{×××} % 任课教师
\newcommand{\calcredit}{×.×} % 课程学分
\newcommand{\calhour}{00} % 总学时
\newcommand{\calstudent}{000} % 学生人数
\newcommand{\calassess}{××考试} % 考核方式(填 ×××)
\newcommand{\calcname}{数字逻辑} % 课程名称(4 字示例)
\newcommand{\calyear}{2025} % 学年
\newcommand{\calseason}{秋} % 季学期(春/秋)
\newcommand{\caldept}{计算机科学与技术学院(系)} % 开课单位
\newcommand{\calcodenum}{080502101231} % 开课号(12 位数字)
\newcommand{\calteacher}{张远航} % 任课教师
\newcommand{\calcredit}{4.0} % 课程学分
\newcommand{\calhour}{64} % 总学时
\newcommand{\calstudent}{86} % 学生人数
\newcommand{\calassess}{闭卷考试} % 考核方式
% 注:签字栏的「年 月 日」不设宏 —— 那是**手写**填空位,模板里保持空白。
\begin{document}
@@ -114,65 +114,55 @@
% (若你确实要 2 页,把这一行改成 \calfall 系列宏、并把 sty 里
% row{2} 的 ht 改回 24.30pt。注意 \calfall 对 \par 分段无效,
% 只对自动折行有效,改之前先读 sty §6 的说明。)
\calcell{第一周} & \calcell{×月×日至×月×日} & \calcell{×} &
\calcell{课程基本情况介绍\par 引例\par 补充知识} & \calcell{多媒体讲课} & & \\
\calcell{第一周} & \calcell{9.1—9.7} & \calcell{4} &
\calcell{课程基本情况介绍\par 引例\par 补充知识} &
\calcell{多媒体讲课} & & \\
\calcell{第二周} & \calcell{9.8—9.14} & \calcell{4} &
\calcell{第一章,数制与编码\par 第一节,数制的基本概念} &
\calcell{多媒体讲课} & & \\
\calcell{第三周} & \calcell{9.15—9.21} & \calcell{4} &
\calcell{第一章,数制与编码\par 数制的三种表现形式,常用编码,常见的几个定理。} &
\calcell{多媒体讲课} & & \\
\calcell{第四周} & \calcell{9.22—9.28} & \calcell{4} &
\calcell{第一章,数制与编码\par 常用的公式、逻辑代数法化简、卡诺图化简。\par 第二章,组合逻辑分析} &
\calcell{多媒体讲课} & & \calcell{作业1.1—1.6} \\
\calcell{第五周} & \calcell{9.29—10.5} & \calcell{4} &
\calcell{第二章,组合逻辑分析\par 组合逻辑分析方法、常见的组合逻辑电路} &
\calcell{多媒体讲课} & \calcell{国庆假期调课} & \calcell{作业1.7—1.10} \\
\calcell{第六周} & \calcell{10.6—10.12} & \calcell{4} &
\calcell{第三章,组合逻辑设计\par 组合逻辑设计方法、任意项} &
\calcell{多媒体讲课} & & \\
\calcell{第七周} & \calcell{10.13—10.19} & \calcell{4} &
\calcell{第三章,组合逻辑设计\par 无反变量设计,考虑多个输出的设计,使用数据选择器进行设计} &
\calcell{多媒体讲课} & & \calcell{作业2.1,2.3,2.5} \\
\calcell{第八周} & \calcell{10.20—10.26} & \calcell{4} &
\calcell{第四章,时序逻辑分析,时序逻辑的基本内容} &
\calcell{多媒体讲课} & & \\
\calcell{第九周} & \calcell{10.27—11.2} & \calcell{4} &
\calcell{第四章,时序逻辑分析\par 时序逻辑分析基本方法} &
\calcell{多媒体讲课} & & \\
\calcell{第十周} & \calcell{11.3—11.9} & \calcell{4} &
\calcell{第四章,时序逻辑分析\par 常见的时序逻辑电路} &
\calcell{多媒体讲课} & & \calcell{作业3.1—3.4} \\
\calctr{第十一周} & \calctr{11.10—11.16} & \calcell{4} &
\calcell{第五章,时序逻辑设计,状态表} &
\calctr{多媒体讲课} & \calcell{期中测验} & \\
\calctr{第十二周} & \calctr{11.17—11.23} & \calcell{4} &
\calcell{第五章,时序逻辑设计,状态表化简} &
\calctr{多媒体讲课} & & \\
\calctr{第十三周} & \calctr{11.24—11.30} & \calcell{4} &
\calcell{第五章,时序逻辑设计,状态转移表} &
\calctr{多媒体讲课} & & \\
\calctr{第十四周} & \calctr{12.1—12.7} & \calcell{4} &
\calcell{第五章,时序逻辑设计,状态图、状态表} &
\calctr{多媒体讲课} & & \calcell{作业4.1} \\
\calctr{第十五周} & \calctr{12.8—12.14} & \calcell{4} &
\calcell{复习、答疑} &
\calctr{多媒体讲课} & & \\
\calctr{第十六周} & \calctr{12.15—12.21} & \calcell{4} &
\calcell{复习、答疑} &
\calctr{多媒体讲课} & & \\
\calcell{第二周} & \calcell{×月×日至×月×日} & \calcell{×} &
\calcell{第一章,××××基础\par 第一节,××××概念} & \calcell{多媒体讲课} & & \\
\calcell{第三周} & \calcell{×月×日至×月×日} & \calcell{×} &
\calcell{第一章,××××基础\par ××××的三种表现形式,××××标准形式,常见的几个定理。} &
\calcell{多媒体讲课} & & \\
\calcell{第四周} & \calcell{×月×日至×月×日} & \calcell{×} &
\calcell{第一章,××××基础\par 常见的公式、××××代数法化简、××××图化简。\par 第二章,××××分析} &
\calcell{多媒体讲课} & & \calcell{作业×.×—×.×} \\
\calcell{第五周} & \calcell{×月×日至×月×日} & \calcell{×} &
\calcell{第二章,××××分析\par ××××分析方法、常见的××××} &
\calcell{多媒体讲课} & & \calcell{作业×.×—×.×} \\
\calcell{第六周} & \calcell{×月×日至×月×日} & \calcell{×} &
\calcell{第三章,××××设计\par ××××设计方法、任意项} &
\calcell{多媒体讲课} & & \\
\calcell{第七周} & \calcell{×月×日至×月×日} & \calcell{×} &
\calcell{第三章,××××设计\par 无反变量设计,考虑多个输出的设计,使用数据选择器进行设计} &
\calcell{多媒体讲课} & & \calcell{作业×.×,×.×,×.××} \\
\calcell{第八周} & \calcell{×月×日至×月×日} & \calcell{×} &
\calcell{第四章,××××分析,××××的基本内容} &
\calcell{多媒体讲课} & & \\
\calcell{第九周} & \calcell{×月×日至×月×日} & \calcell{×} &
\calcell{第四章,××××分析\par ××××分析基本方法} &
\calcell{多媒体讲课} & & \\
\calcell{第十周} & \calcell{×月×日至×月×日} & \calcell{×} &
\calcell{第四章,××××分析\par 常见的××××} &
\calcell{多媒体讲课} & & \calcell{作业×.×—×.×} \\
\calctr{第十一周} & \calctr{×月×日至×月×日} & \calcell{×} &
\calcell{第五章,××××设计,××××表} &
\calctr{多媒体讲课} & & \\
\calctr{第十二周} & \calctr{×月×日至×月×日} & \calcell{×} &
\calcell{第五章,××××设计,××××表化简} &
\calctr{多媒体讲课} & & \\
\calctr{第十三周} & \calctr{×月×日至×月×日} & \calcell{×} &
\calcell{第五章,××××设计,××××转移表} &
\calctr{多媒体讲课} & & \\
\calctr{第十四周} & \calctr{×月×日至×月×日} & \calcell{×} &
\calcell{第五章,××××设计,××××图、××××表} &
\calctr{多媒体讲课} & & \calcell{作业×.×} \\
\calctr{第十五周} & \calctr{×月×日至×月×日} & \calcell{×} &
\calcell{复习、答疑} & \calctr{多媒体讲课} & & \\
\calctr{第十六周} & \calctr{×月×日至×月×日} & \calcell{×} &
\calcell{复习、答疑} & \calctr{多媒体讲课} & & \\
\end{caltable}
%----------------------------------------------------------------------