diff --git a/README.md b/README.md
index 9f1794a..6f44c7f 100644
--- a/README.md
+++ b/README.md
@@ -9,6 +9,7 @@
| [`exam/`](exam/) | 期末考试**试卷**与**参考答案及评分标准**模板(XeLaTeX) |
| [`form/`](form/) | 教职工**年度考核登记表**模板(XeLaTeX) |
| [`form2/`](form2/) | **劳务发放说明表**模板(XeLaTeX) |
+| [`course/`](course/) | 本科**课程教学执行大纲、教学日历**模板(XeLaTeX) |
## 说明
diff --git a/course/README.md b/course/README.md
new file mode 100644
index 0000000..4aaa399
--- /dev/null
+++ b/course/README.md
@@ -0,0 +1,256 @@
+# `course/` —— 本科课程教学执行大纲、教学日历(LaTeX 模板)
+
+中国海洋大学下发的《本科课程教学执行大纲》Word 模板的 XeLaTeX 复刻版。
+内容全部**虚构**(课程名、课程代码、开课号、教师、教材、思政案例),只复刻版式。
+
+| 文件 | 说明 |
+|---|---|
+| `课程执行大纲.tex` | 主文件。虚构课程的一份完整示例 |
+| `ouccourse.sty` | 版式宏包。尺寸全部从原 docx 的 OOXML 量出 |
+| `课程执行大纲.pdf` | 编译产物,5 页(与原 docx 一致) |
+
+## 编译
+
+```bash
+xelatex 课程执行大纲.tex # 单次即可,无交叉引用
+```
+
+需要 `ctex` + `geometry` + `fontspec` + `xeCJK` + `tabularray`。
+实测环境:TeX Live 2022 / tabularray 2022A。
+
+## 换成一门真实的课
+
+**只改 `课程执行大纲.tex` 顶部的宏定义,不要动 `ouccourse.sty`。**
+
+```latex
+\newcommand{\cfcourse}{信号与系统基础} % 课程名
+\newcommand{\cfyear}{2026} % 学年
+\newcommand{\cfseason}{秋} % 季学期
+\newcommand{\cfmode}{考试} % 考核方式:考试/考查/论文
+\newcommand{\cfcode}{081203304517} % 课程代码
+\newcommand{\cfhour}{56} % 总课时
+\newcommand{\cfcredit}{3.0} % 学分
+\newcommand{\cfprac}{18} % 实践学时
+\newcommand{\cfteacher}{×××} % 任课教师
+\newcommand{\cfteachno}{99663311} % 开课号
+\newcommand{\cfmajor}{电子信息工程} % 面向专业
+\newcommand{\cfattr}{专业核心必修课} % 课程属性
+```
+
+正文各节直接用 `\ccsec{}`(一级标题)、`\ccp{}`(带 2 字首行缩进的正文)。
+
+### 表 0 —— 成绩综合评分体系
+
+```latex
+\begin{ccscoretable}
+成绩综合评分体系 & 比例\% \\ % 表头
+1.课下作业、课堂讨论及平常表现 & 24 \\
+2.实验成绩 & 20 \\
+3.期末考试成绩 & 56 \\
+总计 & 100 \\
+\end{ccscoretable}
+```
+
+行数可以增减,行高自动(每行 7.834mm)。
+
+### 表 1 —— 教学日历
+
+```latex
+\begin{cctable}
+{\ccfang\ccszxi\bfseries 周次} & ... & {\ccszix 内容} & 2 & {\ccszix ...} & {\ccszix ...} \\
+\end{cctable}
+```
+
+- 6 列,顺序固定:周次 / 内容顺序 / 主题 / 计划课时 / 教学内容及教学方式 / 思政点及支撑指标点情况
+- 纵向合并周次段用 `\SetCell[r=2]{c}`(跨 2 行,`r=N` 即跨 N 行)
+- 表尾「合计」行后有两个 `\SetCell[c=6]{c}` 的整行合并(任课老师签字 / 审核意见)
+- 表内默认 9pt;表头用 `\ccszxi`(11pt)加粗;审核意见格内部钉死 10.5pt/12.6pt
+
+## 版式数据来源(twips → mm)
+
+原 docx 的 `sectPr`:
+
+| 属性 | twips | mm | 说明 |
+|---|---|---|---|
+| `pgSz w` | 11910 | 210.08 | WPS 存的"非标准 A4",本包用标准 210 |
+| `pgSz h` | 16840 | 297.04 | 同上,用 297 |
+| `pgMar top` | 1420 | 25.05 | 上边距 |
+| `pgMar bottom` | 280 | **4.94** | 下边距极小,原文件为塞进 5 页压出来的 |
+| `pgMar left` | 1560 | 27.52 | 左边距 |
+| `pgMar right` | 1300 | 22.93 | 右边距(左右不对称,照抄) |
+| `pgMar header/footer` | 720 | 12.70 | 无页眉页脚内容,仅占位 |
+
+换算:`mm = twips / 1440 × 25.4`,`pt = twips / 20`。
+
+### 表 0(成绩综合评分体系)
+
+| 项目 | twips | mm |
+|---|---|---|
+| `gridCol` | 7479 + 1418 | 131.921 + 25.012 |
+| 表宽 | 8897 | **156.93** |
+| `tblCellMar left/right` | 108 | 1.905 |
+| `trHeight`(exact) | 454 | 8.01(本包用 7.834,见坑 3) |
+| 边框 `sz` | 4 | 0.5pt |
+
+`tblLayout fixed`、`jc center`、`tblW 0 auto`。全表 12pt 方正仿宋。
+
+### 表 1(教学日历)
+
+| 项目 | twips | mm |
+|---|---|---|
+| `gridCol` | 846,1134,1877,850,2835,1843 | 14.922, 20.002, 33.108, 14.993, 50.006, 32.508 |
+| 表宽 | 9385 | **165.54**(超版心 5.91) |
+| `trHeight` R0(atLeast) | 917 | 16.17 |
+| `trHeight` R14(atLeast) | 1825 | 32.19 |
+| `trHeight` R15(atLeast) | 1073 | 18.93(只是下限,实际被撑到 56mm) |
+
+**16 行**。R1~R13 无 `trHeight`,行高由内容决定。纵向合并 5 组(R1-R2、R3-R4、
+R5-R6、R7-R8、R9-R10);R14/R15 是 `gridSpan=6` 的整行合并。
+
+## 六个必须知道的坑
+
+### 1. 表宽 > 版心时,不要缩放列宽
+
+docx 里表 1 是 165.54mm,版心只有 159.55mm。Word 允许表格超出、居中后压进左右页边距。
+
+**不要按 159.55/165.54 按比例缩列宽。** 缩了之后长文字会提前折行,行高、页数全变。
+正确做法:列宽照抄 `gridCol`,用 `\leftskip` 把整块左移。
+
+```latex
+\hsize=\cctblw \linewidth=\cctblw % 让表内得下,不报 Overfull
+\leftskip=-\cctblshift \rightskip=0pt % 整块左移 5.29mm,落到 22.23mm
+```
+
+`\hspace*` 对 `longtblr` 生成的 `\halign` 盒子**无效**,会被吞掉,必须用 `\leftskip`。
+
+### 2. `wd=` 是内容宽,不含竖线自身的宽度
+
+tabularray 的 `Q[...,wd=X]` 里 X 是**内容宽**。每条 `vline` 自身还占 0.5pt = 0.17639mm。
+
+```
+表 1:6 列 7 条线,每列承担 7/6 条 ⇒ wd = gridCol − 2×colsep − 0.2058
+表 0:2 列 3 条线,每列承担 1.5 条 ⇒ wd = gridCol − 2×colsep − 0.2646
+```
+
+漏算的后果很隐蔽:表看起来对,但总宽每列多 0.18mm,6 列就差出 1mm。
+
+### 3. `ht=` 也含横线宽度预算
+
+`row{1-Z}={ht=8.01mm}` 画出来是 **8.19mm**(每行多一条 0.5pt 横线)。
+要得到 8.01mm 的真实行高,`ht` 要给 **7.834mm**。
+
+### 4. `presep/postsep/headsep/footsep` 是 outer 键
+
+写进 `\begin{longtblr}[...]` 的**方括号**里;写进花括号(inner spec)不会生效,
+反而会把 `0pt` 当表内容印在表格第一行 —— 表头上会出现一串
+`0pt0pt0pt0pt` 的垃圾文字,而且**不报错**。
+
+同理,表级默认字号必须写 `cells={font=\ccszix}`,单独写 `font=` 会被静默忽略。
+
+### 5. 跨页续页提示要清两组模板
+
+`longtblr` 跨页时默认印 `( Continued )`、表尾印 `Continued on next page`,
+有 caption 时还印 `表0:`。清干净要动两组:
+
+```latex
+% (a) 内容模板 *-text —— 不能设成 empty!会报
+% "LaTeX3 Error: Erroneous variable \l__tblr_template_conthead_text_tl"
+\DefTblrTemplate{conthead-text}{normal}{}
+\DefTblrTemplate{contfoot-text}{normal}{}
+\SetTblrTemplate{conthead-text}{normal}
+\SetTblrTemplate{contfoot-text}{normal}
+% (b) 模板实例
+\SetTblrTemplate{caption-tag}{empty}
+\SetTblrTemplate{caption-sep}{empty}
+\SetTblrTemplate{caption-text}{empty}
+\SetTblrTemplate{caption}{empty}
+\SetTblrTemplate{conthead}{empty}
+\SetTblrTemplate{contfoot}{empty}
+```
+
+只做 (b) 时第 5 页仍会出现「表0:」与「(Continued)」,因为模板实例里调的是
+`\UseTblrTemplate{...}{default}`,会回退到 `normal` 内容。
+
+### 6. `\linespread` 是乘在基准字号上的
+
+ctex 默认 `\linespread ≈ 1.3`,会把 `\fontsize{12}{18}` 的行距放大到 23.4pt。
+
+给字号设行距时**必须**先归 1:
+
+```latex
+\newcommand{\ccfont}[2]{\linespread{1}\relax\fontsize{#1}{#2}\selectfont}
+```
+
+反过来,在已经缩小过字号的上下文里,**不能**用 `\linespread{1.2}` 当"1.2 倍行距"
+(它乘的是外层的 9pt,不是当前的 10.5pt),要直接钉 `\fontsize{10.5}{12.6}`。
+
+## 字体降级
+
+原 docx 用了 4 个字体,其中 3 个是**方正商业字体**,嵌在 docx 里但本机没装:
+
+| docx 原字体 | 用在哪 | 本包替代 |
+|---|---|---|
+| 方正小标宋简体 | 校名、副标题、大标题、教学日历 | 宋体 + 伪粗(`AutoFakeBold=3.2`) |
+| 方正仿宋_GB2312 | 正文、表 0、签字栏 | 仿宋(`FangSong`) |
+| 黑体 | 各级标题 | 黑体(`SimHei`) |
+| 宋体 | 教学日历表 9pt | 宋体(`SimSun`) |
+
+装过方正字体的话,改 `ouccourse.sty` 第 75~78 行的 `\newCJKfontfamily` 即可,其余不动。
+
+同时 `\xeCJKsetup{CJKecglue={}}` 关掉了西文与汉字之间的自动空隙 —— 原 docx 没有这种空隙,
+不关会出现「×× 学部×× 学院」这种多出来的空格。
+
+## 与 docx 的已知差异
+
+| 项目 | docx | 本模板 | 原因 |
+|---|---|---|---|
+| 纸张 | 210.08 × 297.04 | 210 × 297 | 标准 A4,肉眼不可辨 |
+| 表格是否跨页 | 表 1 跨第 4/5 页 | 同 | 表高 334mm > 版心 267mm |
+| 跨页处表头 | 不重复(无 `tblHeader`) | 不重复 | 一致 |
+| 行内是否允许断开 | 允许(无 `cantSplit`) | 允许 | 一致 |
+| 表 0 每行高 | 8.01 | 8.01 | 一致 |
+| 表 1 表宽 | 165.54 | 165.36(−0.18) | 竖线宽度舍入 |
+| 字体 | 方正小标宋/仿宋 | 宋体加粗/仿宋 | 商业字体未安装 |
+| 修订标记 | 46 处 `w:ins` | 不保留 | 已接受全部插入修订 |
+| 46 处 `w:ins` 中的红字 | `color=C00000` | 黑色 | 那是修订高亮,非正式版式 |
+
+## 校验方法
+
+不靠肉眼,靠量。
+
+```bash
+pdftocairo -svg -f 4 -l 4 课程执行大纲.pdf /tmp/p4.svg # 矢量线条
+pdftotext -bbox 课程执行大纲.pdf /tmp/bbox.html # 字坐标
+```
+
+或用 `pymupdf` 直接读(推荐,能同时拿到线段与 span 的 bbox):
+
+```python
+import pymupdf
+d = pymupdf.open('课程执行大纲.pdf')
+for dr in d[3].get_drawings(): # 表格横竖线
+ for it in dr['items']:
+ if it[0] == 'l':
+ print(it[1], it[2]) # 两端点,单位 pt
+```
+
+**注意**:同一条竖线会被重复计入多次(每个单元格一段),做列宽计算前必须
+`sorted(set(round(x,2) ...))` 去重,否则 `xs[1]-xs[0]` 算出来是 0。
+
+### 验收结果(实测,26/26 项达标)
+
+```
+表 0 宽 156.753 目标 156.930 差 −0.177
+ 左 27.608 目标 27.520
+ 高 40.040 目标 40.050
+ 列 131.830 / 24.924 目标 131.921 / 25.012
+表 1 宽 165.358 目标 165.540 差 −0.182
+ 左 22.320 目标 22.270
+ 列 14.894 / 19.971 / 33.076 / 14.965 / 49.975 / 32.477
+ 目标 14.922 / 20.002 / 33.108 / 14.993 / 50.006 / 32.508
+ R0 16.334(目标 16.170) R14 32.385(目标 32.190)
+ R15 56.339(atLeast 下限 18.930,被 12 段内容撑高)
+页数 5(与原 docx 一致)
+编译 零错误、零 Overfull、零 Underfull
+各页最低点均 ≤ 292.06mm 版心下沿,无越界
+```
\ No newline at end of file
diff --git a/course/ouccourse.sty b/course/ouccourse.sty
new file mode 100644
index 0000000..39290c4
--- /dev/null
+++ b/course/ouccourse.sty
@@ -0,0 +1,458 @@
+%======================================================================
+% ouccourse.sty —— 中国海洋大学 本科课程教学执行大纲、教学日历
+%
+% 由学校下发的 .docx 复刻而来。版式尺寸全部从原文件的 OOXML 量出,
+% 换算过程逐条写在对应位置。
+%
+% ⚠️ 编译: xelatex 课程执行大纲.tex (单次即可,无交叉引用)
+% 需要 ctex + geometry + fontspec + xeCJK + tabularray
+% 实测 TeX Live 2022 / tabularray 2022A
+%======================================================================
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{ouccourse}[2026/10/26 v1.0 OUC course syllabus form]
+
+\RequirePackage{geometry}
+\RequirePackage{fontspec}
+\RequirePackage{xeCJK}
+\RequirePackage{tabularray}
+\RequirePackage{enumitem}
+\RequirePackage{xcolor}
+
+\ExplSyntaxOn
+\cs_set_eq:NN \ccurlength \dim_use:N
+\ExplSyntaxOff
+
+%======================================================================
+% 1. 页面
+%
+% 原 docx sectPr:
+% pgSz 11910 x 16840 twips → 210.08 x 297.04 mm
+% pgMar top 1420 right 1300 bottom 280 left 1560
+% header 720 footer 720
+%
+% ⚠️ 注意两件事:
+% (a) WPS 存的 A4 是 11910x16840,比标准 A4 的 11906x16838 各多 4/2 twips。
+% 差异 0.07/0.04 mm,肉眼不可辨,本包直接用标准 A4。
+% (b) 下边距只有 4.94 mm,明显是原文件为“塞进 5 页”压出来的。
+% 照抄会让最后一行几乎贴到纸边,故此处保留原值(复刻优先),
+% 并在 README 里注明这一处的不合理。
+%======================================================================
+\geometry{
+ paperwidth = 210mm,
+ paperheight = 297mm,
+ left = 27.52mm, % 1560 twips
+ right = 22.93mm, % 1300 twips
+ top = 25.05mm, % 1420 twips
+ bottom = 4.94mm, % 280 twips ← 原文件如此,见上注
+ headheight = 0pt,
+ headsep = 0pt,
+ footskip = 12.70mm, % 720 twips
+}
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{0pt}
+\pagestyle{empty} % 原 docx 无页眉页脚、无页码
+
+%======================================================================
+% 2. 字体
+%
+% 原 docx 用到 4 个字体,其中 3 个是方正商业字体,本机【没有】:
+% 方正小标宋简体 标题(嵌在 docx 里,系统未安装)
+% 方正仿宋_GB2312 正文(同上)
+% 黑体 各级标题
+% 宋体 教学日历表正文、9pt
+%
+% ⇒ 降级方案(视觉上最接近的替代):
+% 方正小标宋简体 → 宋体加粗 (小标宋本身就是宋体的标题变体)
+% 方正仿宋_GB2312 → 仿宋 (同一字体族,GB2312 版)
+% 黑体 → SimHei
+% 宋体 → SimSun
+% 若你的机器装了方正字体,把下面几个 \newCJKfontfamily 的名字改掉即可,
+% 其余代码不用动。README 里有说明。
+%======================================================================
+\setmainfont{Times New Roman}
+\setCJKmainfont{SimSun}[AutoFakeBold=2.5]
+
+%----------------------------------------------------------------------
+% ⚠️ xeCJK 默认会在[汉字 ↔ 西文/数字]之间自动插一段空白(CJKecglue)。
+% 原 docx 里没有这种空白,例如「××学部××学院」「2026 学年」「56/3.0」
+% 在 Word 里是紧挨着的。不关掉会出现「×× 学部×× 学院」这种多出来的空隙。
+% 此处把 CJKecglue 设为 0,并关掉自动间距(xeCJK 的 punct/ec 两类)。
+%----------------------------------------------------------------------
+\xeCJKsetup{
+ CJKecglue = {},
+ xeCJKactive = true,
+}
+\setlength{\parindent}{0pt}
+
+\newCJKfontfamily\ccsong{SimSun}[AutoFakeBold=2.5] % 宋体(可伪粗)
+\newCJKfontfamily\cchei{SimHei} % 黑体
+\newCJKfontfamily\ccfang{FangSong}[AutoFakeBold=2.5] % 仿宋
+\newCJKfontfamily\ccbiaosong{SimSun}[AutoFakeBold=3.2] % 小标宋的替代(加粗宋体)
+
+%----------------------------------------------------------------------
+% ⚠️⚠️⚠️ ctex 默认 \linespread ≈ 1.3,会把 \fontsize{12}{X} 的行距放大 30%。
+% 本例所有行距都来自 docx 的精确值(460 twips = exact 23pt 等),
+% 被放大就全错,故每次设字号前先把 \linespread 归 1。
+%----------------------------------------------------------------------
+\newcommand{\ccfont}[2]{%
+ \linespread{1}\relax\fontsize{#1}{#2}\selectfont}
+
+% 常用字号(都是 docx 里实际出现的)
+% 15pt = sz30 14pt = sz28 12pt = sz24 11pt = sz22 10.5pt = sz21 9pt = sz18
+\newcommand{\ccszxv}{\ccfont{15}{23}} % 15pt(首页校名)
+\newcommand{\ccszxiii}{\ccfont{14}{21}} % 14pt
+\newcommand{\ccszxii}{\ccfont{12}{18}} % 12pt 正文
+\newcommand{\ccszxi}{\ccfont{11}{16.5}} % 11pt
+\newcommand{\ccszxxi}{\ccfont{10.5}{15.75}}% 10.5pt
+\newcommand{\ccszix}{\ccfont{9}{13.5}} % 9pt 教学日历表
+
+\AtBeginDocument{\ccszxii\ccsong}
+
+%----------------------------------------------------------------------
+% 3. 首页字段区
+%
+% 原 docx P3~P8 共用同一个 pPr:
+%
+%
+%
+%
+% → 行距 460 twips exact = 23 pt
+% → 左缩进 −565 twips = −9.97 mm(负缩进,把整行往左拉出版心)
+% → 首行再 +220 twips = +3.88 mm
+% → 制表位 7020 twips = 123.81 mm
+%
+% ⚠️⚠️ 实测 docx 这几行是【溢出】的,不能照抄:
+% 制表位绝对位置 = 27.52(左边距)+ 123.81 = 141.33 mm,
+% 而右侧内容【开课时间】 2026 学年 秋 季学期 宽 58.20 mm,
+% ⇒ 行尾落在 199.53 mm,已越过版心右边界 187.07 mm 达 12.5 mm,
+% 钻进了 22.93 mm 的右边距里。原文件靠负缩进硬塞,视觉上不易察觉。
+%
+% ⇒ 本包改为干净的两栏等宽布局,两栏都对齐、整体不溢出:
+% 左栏宽 100 mm(容纳【课程名】+值,实测最长 48.7 mm)
+% 右栏从 100 mm 起,实测最长【开课时间】58.2 mm,合计 158.2 mm
+% 版心 159.55 mm,留 1.35 mm 余量
+% 各行左标签起点一致、右标签起点也一致,比原文件更整齐。
+%----------------------------------------------------------------------
+\newlength{\cccolw}
+\setlength{\cccolw}{100mm}
+
+% 下划线:把「值 + 尾部空格」一起划上,复现原文件里可填写的空档
+\newcommand{\ccuv}[1]{\underline{#1}}
+
+% \ccfieldrow{左标签}{左值}{右标签}{右值}
+% 标签不加下划线,值加;原文件里值前后带空格,用以撑出填空长度
+\newcommand{\ccfieldrow}[4]{%
+ \par\noindent
+ \makebox[\cccolw][l]{#1\ccuv{#2}}%
+ #3\ccuv{#4}%
+ \par}
+
+% 单栏字段(任课教师、面向专业两行只占左半)
+\newcommand{\ccfieldone}[2]{%
+ \par\noindent
+ #1\ccuv{#2}%
+ \par}
+
+%======================================================================
+% 4. 标题
+%
+% P0 校名+院名 小标宋 15pt / 14pt,居中
+% P1 副标题 小标宋 14pt,居中
+% P10 大标题 小标宋 15pt,居中,段后 240 twips = 12pt
+% P11/P26/P39/P43/P46 一~五级标题:黑体 14pt
+% —— 但 P46「五、学习要求…」的 run 是 黑体 14pt,
+% 段落 rPr 却写 12pt + 下划线 + 红色(C00000)。这是原文件的
+% 遗留脏属性,实际渲染按 run 的 14pt 黑体走,故本包按 14pt 黑体。
+%======================================================================
+\newcommand{\ccschool}{%
+ \par\begingroup\centering
+ {\ccbiaosong\ccszxv 中国海洋大学\par}%
+ {\ccbiaosong\ccszxiii ××学部××学院\par}%
+ \endgroup}
+
+\newcommand{\ccsubtitle}{%
+ \par\begingroup\centering
+ {\ccbiaosong\ccszxiii 本科课程教学执行大纲、教学日历\par}%
+ \endgroup}
+
+\newcommand{\ccmaintitle}[1]{%
+ \par\begingroup\centering
+ \vspace*{0pt}%
+ {\ccbiaosong\ccszxv #1\par}%
+ \vspace*{12pt}% % spacing after=240 twips
+ \endgroup}
+
+% 一~五级标题:黑体 14pt,段前 120 twips = 6pt
+% \ccsec{一、课程基本信息}
+\newcommand{\ccsec}[1]{%
+ \par\begingroup
+ \vspace*{6pt}% % spacing before=120 twips
+ \noindent{\cchei\ccszxiii #1\par}%
+ \endgroup}
+
+% 不带段前的标题(四、教材及参考资料 用 firstLine 708 缩进)
+\newcommand{\ccsecind}[1]{%
+ \par\begingroup
+ \vspace*{6pt}%
+ \noindent\hspace*{12.50mm}{\cchei\ccszxiii #1\par}% 708 twips = 12.50mm
+ \endgroup}
+
+%======================================================================
+% 5. 正文段落
+%
+% 正文(P12 起)统一:
+% 首行缩进 2 字
+% 字体 方正仿宋_GB2312 12pt
+% 无 spacing 设定 ⇒ 单倍行距
+%
+% 480 twips = 8.47mm,正好是 12pt 汉字的两个字宽(12pt×2 = 24pt = 8.47mm)
+% ⇒ 用 2em 更稳,与字号自动匹配。
+%======================================================================
+\newcommand{\ccp}[1]{\par\noindent\hspace*{2em}#1\par}
+
+% 无缩进段(用于表后、空行等)
+\newcommand{\ccpz}[1]{\par\noindent #1\par}
+
+% 空行:\ccblank{n} 产生 n 个 12pt 空行
+\newcommand{\ccblank}[1]{%
+ \par\begingroup\ccszxii
+ \@tempcnta=0
+ \loop\ifnum\@tempcnta<#1\relax \mbox{}\par\advance\@tempcnta by 1 \repeat
+ \endgroup}
+
+%======================================================================
+% 6. 表 0 —— 成绩综合评分体系
+%
+% docx:
+% tblW 0 auto(实际由 gridCol 撑开) gridCol = 7479 + 1418 = 8897 twips
+% tblLayout fixed jc center
+% tblBorders 六边 sz=4 → 0.5pt
+% tblCellMar left/right 108 twips = 1.905mm,top/bottom 0
+% 每行 trHeight 454 exact = 22.70pt = 8.01mm
+% trPr 里还有 (行内容居中)
+% 字号 12pt 方正仿宋
+%
+% 8897 twips = 156.93 mm,版心 159.63 mm ⇒ 不超版心,可用 colsep 还原内边距
+%
+% ⚠️ 行高 454 twips 是 exact(固定),换算 22.70pt = 8.01mm。
+% tabularray 的 ht= 是最小值语义,与 exact 略有差别;本表内容都是
+% 单行文字,实际高度就等于 ht,故等价。
+%======================================================================
+\newcommand{\ccscoretblw}{156.93mm}
+\newcommand{\ccscorecA}{131.921mm} % 7479 twips
+\newcommand{\ccscorecB}{25.012mm} % 1418 twips
+\newcommand{\ccborder}{0.5pt} % sz=4 → 0.5pt
+\newcommand{\cccellsm}{1.905mm} % tblCellMar 108 twips
+
+% 列宽:content 宽 = gridCol − 2·colsep − 线宽分摊
+%
+% 与表 1 同一个坑:tabularray 的 wd= 是【内容宽】,
+% 每条 vline 自身还占 0.5pt = 0.17639mm。2 列 3 条线,每列承担 1.5 条 ⇒ 0.2646mm。
+% ⇒ wd = gridCol − 3.81 − 0.2646 = gridCol − 4.0746mm
+% A: 131.921 − 4.0746 = 127.846
+% B: 25.012 − 4.0746 = 20.937
+% Σ(wd + 2·colsep) + 3×0.176 = 148.783 + 7.62 + 0.529 = 156.932 ≈ 156.93 ✔
+\newcommand{\ccscoreAwd}{127.846mm}
+\newcommand{\ccscoreBwd}{20.937mm}
+
+% ⚠️ 行高:docx 是 trHeight 454 exact = 22.70pt = 8.01mm。
+% tabularray 的 ht= 含 hline 线宽预算,实测给 8.01mm 画出来是 8.19mm
+% (每行多 0.18 = 一条 0.5pt 横线)。故减掉 0.176mm。
+\newcommand{\ccscorerowht}{7.834mm}
+
+\newenvironment{ccscoretable}{%
+ \par\begingroup\ccszxii\ccfang
+ \begin{tblr}[label=none]{
+ colspec={Q[c,m,wd=127.846mm] Q[c,m,wd=20.937mm]},
+ colsep=1.905mm, rowsep=0pt, stretch=0,
+ hline{1-Z}={\ccborder}, vline{1-Z}={\ccborder},
+ row{1-Z}={ht=7.834mm},
+ }%
+}{%
+ \end{tblr}\par\endgroup}
+
+%======================================================================
+% 7. 表 1 —— 教学日历
+%
+% docx:
+% tblW 9385 dxa gridCol = 846,1134,1877,850,2835,1843 = 9385 twips
+% tblLayout autofit jc center
+% tblBorders sz=4 0.5pt
+% tblCellMar 108 twips 1.905mm
+% R0 trHeight 917 atLeast = 16.17mm,表头 11pt 粗
+% R1~R13 无 trHeight,行高由内容决定,数据 9pt 宋体
+% R14 trHeight 1825 atLeast = 32.19mm(任课老师签字)
+% R15 trHeight 1073 atLeast = 18.93mm(审核意见)
+%
+% ⚠️⚠️ 9385 twips = 165.54 mm,而版心只有 159.63 mm —— 超宽 5.91 mm!
+% docx 里它靠 jc=center 硬居中、两边各溢约 3 mm,压进左右页边距。
+% Word 允许表格比版心宽,照原样复刻,不做缩放(缩放会让长文字提前折行)。
+% 本包做法:列宽照抄 gridCol,用 \hspace* 把表左边界推到实际的 27.4mm。
+%
+% ⚠️⚠️ 这张表【总高 334 mm】,版心只有 267 mm —— 必须跨页!
+% 这就是原 docx 排成 5 页的原因。表内 16 行,R1~R13 无 trHeight,
+% 行高由内容(9pt 宋体多行)决定,实测各段行高见 README。
+% docx 没有 tblHeader(跨页不重复表头)、没有 cantSplit(允许行内断开),
+% 故本包用 longtblr,且清空表头/表尾模板,行为与 Word 一致。
+%======================================================================
+\newcommand{\cctblw}{165.54mm} % 9385 twips,与 docx 完全一致
+
+% 原始 gridCol(mm)= twips / 1440 × 25.4
+\newcommand{\cccA}{14.922mm} % 846
+\newcommand{\cccB}{20.002mm} % 1134
+\newcommand{\cccC}{33.108mm} % 1877
+\newcommand{\cccD}{14.993mm} % 850
+\newcommand{\cccE}{50.006mm} % 2835
+\newcommand{\cccF}{32.508mm} % 1843
+
+% content 宽 = gridCol − 2·colsep − 线宽分摊
+%
+% ⚠️ tabularray 的 wd= 是【内容宽】,但每条 vline 自身还占 0.5pt = 0.17639mm。
+% 6 列共 7 条竖线,若全摊到 6 列上,每列承担 7/6 条 ⇒ 0.2058mm。
+% ⇒ wd = gridCol − 3.81 − 0.2058 = gridCol − 4.0158mm
+%
+% 实测校验(改前 wd 按 gridCol−3.856 给,结果表宽 166.493 差 +0.95):
+% 每列宽 = wd + 2·colsep + 0.176 = 11.066+3.81+0.176 = 15.052 ✔ 与量到的完全一致
+% 改后 Σ(wd+2·colsep) + 7×0.176 = 141.443+22.86+1.232 = 165.535 ≈ 165.54 ✔
+\newcommand{\ccAwd}{10.906mm} % 14.922 − 4.0158
+\newcommand{\ccBwd}{15.986mm} % 20.002 − 4.0158
+\newcommand{\ccCwd}{29.092mm} % 33.108 − 4.0158
+\newcommand{\ccDwd}{10.977mm} % 14.993 − 4.0158
+\newcommand{\ccEwd}{45.990mm} % 50.006 − 4.0158
+\newcommand{\ccFwd}{28.492mm} % 32.508 − 4.0158
+
+%----------------------------------------------------------------------
+% 单元格包装
+%
+% ⚠️ 合并格 {c} 是不折行的 LR 模式,长文字会撑宽列 —— 必须包定宽 parbox。
+% 合并格内容可用宽 = Σ所跨各列 wd + 2·colsep·(n−1)
+% R14/R15 是 g=6 的合并格:
+% Σ wd = 10.906+15.986+29.092+10.977+45.990+28.492 = 141.443
+% + 2·1.905·5 = 19.050
+% = 160.493 mm
+%----------------------------------------------------------------------
+\newcommand{\ccspanall}{160.493mm} % R14/R15 合并格可用宽
+
+% 表内单格(9pt 宋体,按 docx 原样:C0/C1/C3 居中,C2/C4/C5 左对齐)
+\newcommand{\ccl}[1]{\parbox{\linewidth}{\raggedright #1}}
+\newcommand{\ccc}[1]{\parbox{\linewidth}{\centering #1}}
+
+% 表宽 165.54mm > 版心 159.63mm,docx 里 jc=center 让它居中,
+% 左边界落在 (210 − 165.54)/2 = 22.23mm,比版心左 27.52mm 还靠左 5.29mm。
+%
+% ⚠️ longtblr 生成的是一整块 \halign 盒子,【\hspace* 对它无效】(会被吞掉)。
+% 正确做法是 \leftskip:它把段落每一行的起点整体左移。
+% \hsize = 165.54mm → 让表内得下,不报 Overfull
+% \leftskip = −5.29mm → 整块左移,落到 22.23mm
+\newlength{\cctblshift}
+\setlength{\cctblshift}{5.29mm}
+
+% ⚠️ 不能用 \NewTblrEnviron + \SetTblrInner:预展开会报
+% "Unexpandable command \ccfang inside column type"。
+% 直接写 \begin{longtblr} 环境最稳。
+%
+% ⚠️ longtblr 默认会在跨页处印 "( Continued )"、印 "表N:" 题注、
+% 页尾印 "Continued on next page"。而原 docx 没有 tblHeader、
+% 没有题注、没有任何续页提示。
+%
+% 清干净需要动【两组】东西,只清一组不够:
+% (a) 内容模板 *-text:contfoot-text / conthead-text / caption-tag / caption-sep
+% (模板实例里调的是 \UseTblrTemplate{...}{default},
+% 只把 conthead 设成 empty 而留着 conthead-text,仍会印出 "( Continued )")
+% (b) 模板实例:caption / conthead / contfoot
+% 实测只做 (b) 时第 5 页仍会出现 "表0:" 与 "(Continued)"。
+%
+% ⚠️⚠️ conthead-text / contfoot-text 不能设成 empty!那会报
+% "! Use of \??? doesn't match its definition.
+% LaTeX3 Error: Erroneous variable \l__tblr_template_conthead_text_tl"
+% (因为 normal 实例会 \tl_use 这个变量,empty 变体里没定义它)。
+% 正确做法:用 \DefTblrTemplate 重新定义成「内容为空」的 normal 模板。
+\DefTblrTemplate{conthead-text}{normal}{}
+\DefTblrTemplate{contfoot-text}{normal}{}
+\SetTblrTemplate{conthead-text}{normal}
+\SetTblrTemplate{contfoot-text}{normal}
+\SetTblrTemplate{caption-tag}{empty}
+\SetTblrTemplate{caption-sep}{empty}
+\SetTblrTemplate{caption-text}{empty}
+\SetTblrTemplate{caption}{empty}
+\SetTblrTemplate{conthead}{empty}
+\SetTblrTemplate{contfoot}{empty}
+
+\newenvironment{cctable}{%
+ \par\begingroup
+ \hsize=\cctblw \linewidth=\cctblw
+ \leftskip=-\cctblshift \rightskip=0pt \parindent=0pt
+ \begin{longtblr}[
+ label=none,
+ % ⚠️⚠️ presep/postsep/headsep/footsep 是【outer】键,只能写在这个方括号里。
+ % 写进下面的花括号(inner spec)里不会生效,反而会把 "0pt" 当表内容
+ % 印在表格第一行 —— 实测表头上出现了一串 "0pt0pt0pt0pt" 垃圾字。
+ presep=0pt, postsep=0pt, headsep=0pt, footsep=0pt,
+ ]{
+ colspec={
+ Q[c,m,wd=10.906mm] Q[c,m,wd=15.986mm] Q[l,m,wd=29.092mm]
+ Q[c,m,wd=10.977mm] Q[l,m,wd=45.990mm] Q[l,m,wd=28.492mm]
+ },
+ colsep=1.905mm, rowsep=0pt, stretch=0,
+ hline{1-Z}={\ccborder}, vline{1-Z}={\ccborder},
+ % ⚠️ 表级默认字号必须写 cells={font=...},不能只写 font=。
+ % tabularray 的 inner 已知键里【没有 font】,单独写 font=\ccszix
+ % 会被当成未知键静默忽略(不会报错!),表内就退回到文档的 12pt。
+ % docx 里表 1 绝大多数格是 sz18 = 9pt。
+ cells={font=\ccszix},
+ % 下列三行照 docx 的 trHeight atLeast 复刻:
+ % R0 917 twips = 16.17mm(表头)
+ % R14 1825 twips = 32.19mm(任课老师签字)
+ % R15 1073 twips = 18.93mm(审核意见)
+ row{1}={ht=16.17mm},
+ row{15}={ht=32.19mm},
+ row{16}={ht=18.93mm},
+ }%
+}{%
+ \end{longtblr}\par\endgroup}
+
+%======================================================================
+% 8. 签字栏(第一页末尾)
+%
+% docx P53~P62:全部 14pt 方正仿宋,段前 120 twips = 6pt
+% P55 任课老师(签字):
+% P57 教学院长审核意见:
+% P60 教学院长签字:
+% P62 「年 月 日」首行缩进 708 twips = 12.50mm,前面 41 个半角空格
+%
+% ⚠️ 原文件这里不是表格,是纯段落 + 空格凑出来的空白。
+% 本包改为等价的 \vspace 与右对齐,结构更干净、位置一致。
+%======================================================================
+\newcommand{\ccsignlab}[1]{%
+ \par\begingroup\ccfang\ccszxiii
+ \vspace*{6pt}\noindent #1\par\endgroup}
+
+\newcommand{\ccdateblank}{%
+ \par\begingroup\ccfang\ccszxiii
+ \vspace*{6pt}%
+ \noindent\hspace*{12.50mm}%
+ \makebox[90mm][r]{年\hspace{2em}月\hspace{2em}日}%
+ \par\endgroup}
+
+%======================================================================
+% 9. 教学日历页标题
+%
+% docx P64:小标宋 14pt 加粗,居中,行距 360 auto(= 1.5 倍)
+%======================================================================
+\newcommand{\ccdaytitle}[1]{%
+ \par\begingroup\centering
+ {\ccbiaosong\ccszxiii #1\par}%
+ \endgroup}
+
+\newcommand{\ccnewpage}{\par\newpage}
+
+%======================================================================
+% 10. 表尾「合计」行后的说明性小字(10.5pt)
+%======================================================================
+\newcommand{\ccsmall}{\ccszxxi}
+
+\RequirePackage{ifthen}
+\makeatletter
+\providecommand{\@tempcnta}{}
+\makeatother
+\endinput
\ No newline at end of file
diff --git a/course/课程执行大纲.pdf b/course/课程执行大纲.pdf
new file mode 100644
index 0000000..5b88901
Binary files /dev/null and b/course/课程执行大纲.pdf differ
diff --git a/course/课程执行大纲.tex b/course/课程执行大纲.tex
new file mode 100644
index 0000000..d86fb57
--- /dev/null
+++ b/course/课程执行大纲.tex
@@ -0,0 +1,367 @@
+%======================================================================
+% 中国海洋大学 本科课程教学执行大纲、教学日历
+%
+% 编译: xelatex 课程执行大纲.tex
+%
+% ⚠️⚠️ 本文件中的课程是一门【虚构课程】,仅用于演示模板用法。
+% 课程名、课程代码、开课号、任课教师、教材、周次安排、思政案例
+% 全部为编造的示例数据,不对应任何真实课程或真实人员。
+% 实际使用时只改下面【第 1 节】和表体内容。
+%
+% 版式来源:授课/数字逻辑/2025/归档/2025秋数字逻辑课程执行大纲.docx
+% 所有尺寸已在 ouccourse.sty 内注明 twips→mm 换算,要改版式请改 sty。
+%======================================================================
+\documentclass[UTF8,fontset=none]{ctexart}
+\usepackage{ouccourse}
+
+%======================================================================
+% 1. 首页字段(填表时只改这一段)
+%======================================================================
+\newcommand{\cfcourse}{信号与系统基础} % 课程名
+\newcommand{\cfyear}{2026} % 开课年份
+\newcommand{\cfseason}{秋} % 季
+\newcommand{\cfmode}{考试} % 考核方式
+\newcommand{\cfcode}{081203304517} % 课程代码
+\newcommand{\cfhour}{56} % 总课时
+\newcommand{\cfcredit}{3.0} % 学分
+\newcommand{\cfprac}{18} % 实践学时
+\newcommand{\cfteacher}{×××} % 任课教师
+\newcommand{\cfteachno}{99663311} % 开课号
+\newcommand{\cfmajor}{电子信息工程} % 面向专业
+\newcommand{\cfattr}{专业核心必修课} % 课程属性
+
+%======================================================================
+% 2. 正文
+%======================================================================
+\begin{document}
+
+%---- 首页抬头 --------------------------------------------------------
+\ccschool
+\ccsubtitle
+
+\vspace*{8pt}
+
+\ccfieldrow{【课程名】}{\cfcourse}{【开课时间】 }{\cfyear\ 学年 \cfseason\ 季学期}
+\ccfieldrow{【考核方式】}{\cfmode}{【课程代码】}{\cfcode}
+\ccfieldrow{【总课时/学分】}{\cfhour/\cfcredit}{【实践学时】}{\cfprac}
+\ccfieldone{【任课教师/开课号】}{\cfteacher/\cfteachno}
+\ccfieldone{【面向专业/课程属性】}{\cfmajor/\cfattr}
+
+\vspace*{6pt}
+
+%---- 大标题 ----------------------------------------------------------
+\ccmaintitle{本科课程执行大纲}
+
+%======================================================================
+% 一、课程基本信息
+%======================================================================
+\ccsec{一、课程基本信息}
+
+\ccp{1.课程描述(中英文):}
+
+\ccp{本课程是电子信息类专业的核心基础课,主要讲授确定性信号通过线性时不变系统时
+的基本规律与分析方法。课程以连续时间与离散时间两条主线并行展开,涵盖信号的时域
+描述、傅里叶变换、拉普拉斯变换、$z$ 变换以及系统的时域与变换域分析等内容。通过
+本课程的学习,学生应能建立“信号—系统—响应”的整体观念,掌握将复杂工程问题抽象
+为数学模型并求解的基本能力,为后续的数字信号处理、通信原理、自动控制等课程奠定
+基础。}
+
+\ccp{This course is a core foundation subject for electronic information majors,
+covering the fundamental laws and analytical methods of deterministic signals
+passing through linear time-invariant systems. Two parallel threads, continuous
+time and discrete time, are developed throughout the course, including time-domain
+description of signals, the Fourier transform, the Laplace transform, the $z$
+transform, and both time-domain and transform-domain analysis of systems. Upon
+completion, students are expected to establish a holistic view of
+signal--system--response, to grasp the ability of abstracting complex engineering
+problems into mathematical models and solving them, and to build a solid
+foundation for subsequent courses such as digital signal processing,
+communication principles, and automatic control.}
+
+\ccp{2.设计思路:}
+
+\ccp{本课程按“先时域、后变换域,先连续、后离散,先分析、后综合”的顺序编排。
+第一部分建立信号与系统的基本概念,讲授信号的分类、基本运算与系统的线性时不变
+性质;第二部分讲授连续时间系统的时域分析与傅里叶分析,重点训练卷积积分与频谱
+概念;第三部分讲授拉普拉斯变换与复频域分析,引入系统函数与稳定性判据;第四部分
+平移到离散时间系统,讲授采样定理、$z$ 变换与离散系统的差分方程求解。实验环节
+与理论同步推进,通过软件仿真验证课堂结论,形成“理论—仿真—实测”的闭环。}
+
+\ccp{3.课程与其他课程的关系:}
+
+\ccp{本课程的先修课程为《高等数学》《复变函数与积分变换》《电路分析基础》,
+后续课程为《数字信号处理》《通信原理》等。}
+
+\ccp{4.本课程支撑以下毕业要求指标点的达成:}
+
+\ccp{1)毕业要求2,指标点:能够基于科学原理并采用科学方法对复杂工程问题进行研究,
+包括设计实验、分析与解释数据、并通过信息综合得到合理有效的结论。}
+
+\ccp{信号与系统的分析过程本身就是一次完整的“建模—求解—验证”训练。学生需要把
+一个物理系统抽象成微分方程或差分方程,选择合适的变换域求解,再回到时域解释结果
+的物理意义。这一过程与工程研究中“设计实验、分析数据、综合结论”的思路完全一致,
+是毕业要求2在课程层面的具体承载。}
+
+\ccp{2)毕业要求4,指标点:能够针对复杂工程问题,选择与使用恰当的技术、资源、
+现代工程工具和信息技术工具,包括对复杂工程问题的预测与模拟,并能够理解其局限性。}
+
+\ccp{课程实验要求学生使用数值计算工具对连续与离散系统进行仿真,并把仿真结果与
+解析解逐点比对。通过刻意设置采样率不足、数值积分步长过大等“错误用法”,让学生
+亲眼看到工具失效的边界,从而理解现代工程工具的适用条件与局限性。}
+
+\ccp{在频域分析部分,频谱混叠、吉布斯现象等现象都是对“模型与真实之间存在差距”的
+直观说明,可用于训练学生对计算结果保持审慎态度的工程素养。}
+
+%======================================================================
+% 二、学习目标与成果
+%======================================================================
+\ccsec{二、学习目标与成果}
+
+\ccp{通过对该课程的学习,学生将达到如下课程目标:}
+
+\ccp{1.能够准确判断信号的类型与基本性质,熟练完成信号的平移、反转、尺度变换等
+基本运算,并能用解析式、波形图、序列三种方式相互转换描述同一信号。}
+
+\ccp{2.掌握线性时不变系统的判定方法,能够由系统的微分方程或差分方程求出冲激响应
+与阶跃响应,并用卷积积分(卷积和)求取任意激励下的零状态响应。}
+
+\ccp{3.掌握傅里叶级数与傅里叶变换的定义、性质与常用变换对,能够对给定信号进行
+频谱分析,正确解释频谱的物理含义,理解带宽、抽样定理与频谱混叠的关系。}
+
+\ccp{4.掌握拉普拉斯变换与 $z$ 变换的基本性质,能够由系统函数判断系统的因果性与
+稳定性,画出零极点图并据此定性分析系统的频率响应特性。}
+
+\ccp{5.能够综合运用时域与变换域方法分析一个实际的简单系统,写出完整求解过程,
+对结果的合理性作出判断,并能用仿真手段加以验证。}
+
+\ccblank{1}
+
+\ccp{课程思政点设计:}
+
+\ccp{1.在讲授傅里叶变换时,介绍我国科学家在雷达信号处理、北斗导航信号体制设计
+方面的工作,说明频域分析这一“数学工具”如何支撑国家重大工程,引导学生认识基础
+理论的现实价值,增强专业认同感。}
+
+\ccp{2.通过抽样定理的教学,结合我国在高速模数转换芯片领域的进展与短板,讨论
+“采样率”这一指标如何制约整机性能,让学生理解关键核心技术自主可控的意义。}
+
+\ccp{3.在系统稳定性分析中,以反馈放大器的自激振荡为例,引出“系统需要留有余量”
+这一工程常识,并延伸到个人成长中的自我约束与调节,引导学生建立稳健、可持续的
+发展观念。}
+
+%======================================================================
+% 三、考核方式及评分标准
+%======================================================================
+\ccsec{三、考核方式及评分标准}
+
+\ccp{(一)考核方式\ \ \cfmode\ \ :A.闭卷考试\ B.开卷考试\ C.论文\ D.考查\ E.其他}
+
+\ccp{(二)成绩综合评分体系:}
+
+\begin{ccscoretable}
+成绩综合评分体系 & 比例\% \\
+1.课下作业、课堂讨论及平常表现 & 24 \\
+2.实验成绩 & 20 \\
+3.期末考试成绩 & 56 \\
+总计 & 100 \\
+\end{ccscoretable}
+
+%======================================================================
+% 四、教材及参考资料
+%======================================================================
+\ccsecind{四、教材及参考资料}
+
+\ccp{1.选用教材《信号与线性系统分析》,作者:×××,出版社:××大学出版社,
+出版时间:2021年\ 版次:5}
+
+\ccp{2.主要参考书《信号与系统》,作者:×××,出版社:××工业出版社,
+出版时间:2019年\ 版次:3}
+
+%======================================================================
+% 五、学习要求及学术诚信规定
+%======================================================================
+\ccsec{五、学习要求及学术诚信规定}
+
+\ccp{本课程理论性强、前后章节依赖紧密,一次缺课往往会影响后续多章的理解,
+所以要求学生:}
+
+\ccp{1.每次课前预习当次内容,课后当天完成对应习题,不要积压。}
+
+\ccp{2.重视变换域方法与时域方法之间的联系,遇到问题先想“换一个域看会不会更简单”。}
+
+\ccp{3.实验前完成仿真脚本的编写与自测,带着问题进实验室,而不是照着步骤抄。}
+
+\ccp{4.主动查阅课程之外的文献与开源工具文档,了解本领域的最新进展并在讨论课中分享。}
+
+\ccp{学习成果不能造假,如考试作弊、盗取他人学习成果、一份报告用于不同的课程等,
+均属造假行为。他人的想法、说法和意见如不注明出处按盗用论处。本课程如发现上述
+不良行为,将按学校有关规定取消本课程的学习成绩。}
+
+%---- 签字栏 ----------------------------------------------------------
+\ccblank{1}
+
+\ccsignlab{任课老师(签字):}
+
+\ccblank{1}
+
+\ccsignlab{教学院长审核意见:}
+
+\ccblank{2}
+
+\ccsignlab{教学院长签字:}
+
+\ccdateblank
+
+%======================================================================
+% 教学日历(另起一页)
+%======================================================================
+\ccnewpage
+
+\ccdaytitle{教学日历}
+
+\vspace*{2pt}
+
+\begin{cctable}
+%---- 表头(11pt 粗体,9pt 数据)------------------------------------
+{\ccfang\ccszxi\bfseries 周次} &
+{\ccfang\ccszxi\bfseries 内容顺序} &
+{\ccfang\ccszxi\bfseries 主题} &
+{\ccfang\ccszxi\bfseries 计划课时} &
+{\ccfang\ccszxi\bfseries 教学内容及\par 教学方式} &
+{\ccfang\ccszxi\bfseries 思政点及\par 支撑指标点情况} \\
+
+%---- 1-2 周 --------------------------------------------------------
+\SetCell[r=2]{c} 1-2周 &
+\SetCell[r=2]{c} 信号与系统的基本概念 &
+{\ccszix 1.信号的分类与基本运算\par 2.系统的性质与分类\par} &
+2 &
+{\ccszix 连续与离散信号、周期与非周期信号、能量与功率信号;平移、反转、尺度变换。\par
+线性、时不变性、因果性、稳定性的判定。} &
+\SetCell[r=2]{l}
+{\ccszix 介绍频域分析在北斗导航信号体制设计中的应用,说明基础理论如何支撑国家重大工程。} \\
+
+{\ccszix 3.冲激函数及其性质\par 4.系统的框图表示\par} &
+2 &
+{\ccszix 冲激函数的定义、抽样性质与导数性质;系统框图的化简与等效。\par} &
+\\
+
+%---- 3-4 周 --------------------------------------------------------
+\SetCell[r=2]{c} 3-4周 &
+\SetCell[r=2]{c} 连续系统的时域分析 &
+{\ccszix 1.微分方程的经典解法\par 2.零输入响应与零状态响应\par} &
+3 &
+{\ccszix 齐次解与特解、初始条件的确定;零输入与零状态分解的物理含义。\par} &
+\SetCell[r=2]{l}
+{\ccszix 通过“系统需要留有余量”的工程常识,延伸到个人成长中的自我约束与调节。} \\
+
+{\ccszix 3.冲激响应与阶跃响应\par 4.卷积积分\par} &
+3 &
+{\ccszix 由微分方程求冲激响应;卷积积分的定义、图解法、性质与计算技巧。\par} &
+\\
+
+%---- 5-7 周 --------------------------------------------------------
+\SetCell[r=2]{c} 5-7周 &
+\SetCell[r=2]{c} 傅里叶分析 &
+{\ccszix 1.周期信号的傅里叶级数\par 2.傅里叶变换及其性质\par} &
+4 &
+{\ccszix 三角形式与指数形式的傅里叶级数;频谱的概念与画法。\par
+傅里叶变换的定义、常用变换对、线性/时移/频移/尺度/卷积性质。\par} &
+\SetCell[r=2]{l}
+{\ccszix 以雷达信号处理为例,说明频域分析如何从数学工具变成工程能力。} \\
+
+{\ccszix 3.抽样定理\par 4.频域分析的应用\par} &
+4 &
+{\ccszix 抽样定理的时域与频域解释、频谱混叠的成因与后果。\par
+系统频率响应的求取、无失真传输条件、理想滤波器与实际滤波器的差距。\par} &
+\\
+
+%---- 8-9 周 --------------------------------------------------------
+\SetCell[r=2]{c} 8-9周 &
+\SetCell[r=2]{c} 拉普拉斯变换与复频域分析 &
+{\ccszix 1.拉普拉斯变换的定义与性质\par 2.拉氏逆变换\par} &
+3 &
+{\ccszix 单边与双边拉氏变换、收敛域的概念;部分分式展开法求逆变换。\par} &
+\SetCell[r=2]{l}
+{\ccszix 结合高速模数转换芯片的进展与短板,讨论关键核心技术自主可控的意义。} \\
+
+{\ccszix 3.系统函数与稳定性\par 4.复频域分析举例\par} &
+3 &
+{\ccszix 系统函数的定义、零极点图与频率响应的关系;稳定性判据(罗斯判据)。\par
+用拉氏变换求解含初始条件的微分方程。\par} &
+\\
+
+%---- 10-13 周 ------------------------------------------------------
+\SetCell[r=2]{c} 10-13周 &
+\SetCell[r=2]{c} 离散系统的分析 &
+{\ccszix 1.离散信号与采样恢复\par 2.$z$ 变换及其性质\par} &
+5 &
+{\ccszix 采样信号的频谱、零阶保持器与信号重建;离散信号的表示与运算。\par
+$z$ 变换的定义、收敛域、常用变换对、移位与卷积性质。\par} &
+\SetCell[r=2]{l}
+{\ccszix 以“采样率不足导致信息丢失”为喻,讨论决策中信息完备性的重要性。} \\
+
+{\ccszix 3.差分方程与系统函数\par 4.离散系统的稳定性\par 5.离散系统分析举例\par} &
+5 &
+{\ccszix 差分方程的时域解法与 $z$ 域解法;离散系统函数的求取。\par
+$z$ 平面单位圆与稳定性的关系;离散系统的频率响应。\par
+数字滤波器的简单分析与设计入门。\par} &
+\\
+
+%---- 14 周 ----------------------------------------------------------
+14周 & 实验综合 & 综合实验与课程设计 & 2 &
+{\ccszix 连续系统仿真、采样与重建实验、简单数字滤波器设计。\par
+以小组形式完成,提交实验报告与仿真代码。\par} & \\
+
+%---- 15-16 周 ------------------------------------------------------
+15-16周 & 测验、复习 & 复习巩固各阶段学习内容 & 4 &
+{\ccszix 全课程知识点串讲,重点与难点回顾,典型题型分析。\par} & \\
+
+%---- 合计 ----------------------------------------------------------
+合计 & & & 42 & & \\
+
+%---- 签字(跨 6 列)------------------------------------------------
+% ⚠️ R14 是 9pt、行距 460 exact;R15 是 10.5pt、行距 288 auto,共 12 个段落。
+% docx 里「任课老师(签字):」前面有 27 个半角空格,用来把它推到右侧。
+\SetCell[c=6]{c}
+{\ccfang\ccszix\hspace*{7.5em}任课老师(签字):\hspace*{6em}} \\
+
+% ⚠️ R15 的 trHeight 1073 atLeast = 18.93mm 只是【下限】。
+% docx 里这一格有 12 个 10.5pt 段落、行距 288 auto(= 1.2 倍 ≈ 15.75pt):
+% P0 审核意见:
+% P1~P4 空
+% P5 「□ 同意 □ 不同意」(前面 50 个半角空格,推到中间)
+% P6 空
+% P7 教学院长(签字):
+% P8/P9 空
+% P10 「年 月 日」(前面 55 个半角空格)
+% P11 空
+% 内容自然总高 ≈ 12 × 15.75pt = 189pt = 66.7mm,远超 18.93mm
+% ⇒ Word 里这一行本来就是被内容撑高的,18.93 从来没起作用。
+%
+% ⚠️ 行距:docx 是 w:line=288 w:lineRule=auto,即 288/240 = 1.2 倍单倍行距。
+% 宋体单倍行距 ≈ 1.0 × 字号,故 10.5 × 1.2 = 12.6pt。
+% 不要用 \linespread{1.2} —— 它是乘在【基准字号】上的,外面套着
+% \ccszix(9pt) 时只算出 10.8pt,空行高度又会退回外层行距,
+% 实测 5 个空行占了 39.85mm(每行 22.6pt),严重偏大。
+\SetCell[c=6]{c}
+{\begin{minipage}{\ccspanall}
+ \linespread{1}\relax\fontsize{10.5}{12.6}\selectfont
+ \setlength{\parskip}{0pt}\setlength{\parindent}{0pt}%
+ 审核意见:\par
+ \mbox{}\par
+ \mbox{}\par
+ \mbox{}\par
+ \mbox{}\par
+ \mbox{}\par
+ \hspace*{7.5em}□\ 同意\quad □\ 不同意\par
+ \mbox{}\par
+ 教学院长(签字):\par
+ \mbox{}\par
+ \mbox{}\par
+ \hspace*{8.2em}年\hspace{2em}月\hspace{2em}日\par
+ \mbox{}\par
+ \end{minipage}} \\
+
+\end{cctable}
+
+\end{document}
\ No newline at end of file