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