新增《本科生课程大纲》LaTeX 模板(基于 2024 版数字逻辑 docx) #23

Closed
opened 2026-10-30 05:37:44 +00:00 by laoyang · 1 comment
Owner

新增《中国海洋大学本科生课程大纲》LaTeX 模板(基于 2024 版数字逻辑 docx)

用户诉求

用户原话:「SynologyDrive\授课\数字逻辑\教学大纲,这个目录下,还有教学大纲的文件,
你找一个比较新的,改成latex模板。」

源文件选择

目录 C:\Users\Yongquan\SynologyDrive\授课\数字逻辑\教学大纲\ 下共 17 个文件,
按修改时间排序:

文件 修改时间 说明
课程大纲模板-数字逻辑-2024版.docx 2025-01-02 最新,选它
附件1.课程大纲模板-数字逻辑-2023版.docx 2023-06-20 次新
2022版课程大纲-数字逻辑.docx 2023-10-27
其余 14 个 2015~2023 更旧

选 课程大纲模板-数字逻辑-2024版.docx(39600 字节,45 段落 + 6 表格)。

源文档结构(已提取)

标题

「中国海洋大学本科生课程大纲」15pt 居中

表 0:课程基本信息(6 行 × 6 列)

课程名称 |(中文)数字逻辑
课程名称 |(英文)Digital Logic
课程代码 | 080502101231 | 责任教师 | 杨永全
课程属性 | 专业知识      | 课程性质 | 必修
学分     | 2.5           | 总课时   | 48
理论课时 | 32 | 实践课时 | 16 | 课外学时 | 32

八个章节

  1. 课程介绍 —— 含「课程描述(中英文)」「设计思路」「课程与其他课程的关系」
  2. 课程目标 —— 5 条目标 + 毕业要求指标点对应(3 个子段)+ 2 个表格
    • 表 1:课程目标 × 指标点矩阵(6×6,空格待填 ✓ 标记)
    • 表 2:课程目标 × 教学内容/教学方法(6×3)
  3. 学习要求 —— 4 条
  4. 教学进度 —— 表 3(8×5:序号/专题/计划课时/主要内容概述/实验实践)
  5. 参考教材与主要参考书 —— 1 条
  6. 成绩评定 —— 三小节
    • (一)考核方式 A
    • (二)成绩与能力要求对应分布 —— 表 4(6×4:序号/毕业要求/考核环节/成绩比重)
    • (三)成绩综合评分体系 —— 表 5(5×2)
  7. 学术诚信 —— 1 段
  8. 大纲审核 —— 教学院长 / 院学术委员会签章

版式参数(已从 OOXML 量出)

页面   210.01 × 297.00 mm(WPS 存的 A4,比标准多 0.01mm,用标准 A4)
边距   上下左右均 1440 twips = 25.40 mm
header/footer 709 twips = 12.51 mm
正文字号   12pt(小四)
标题       15pt 居中
表格       9~10pt
字体表     Times New Roman / 宋体 / 黑体 / 仿宋_GB2312 / 仿宋 / 微软雅黑

实现方案

目录 课程大纲/

参照仓库既有的 课程执行大纲/ 风格(同样来自学校下发 docx 的复刻):

  • oucSyllabus.sty —— 版式包
  • 课程大纲.tex —— 示例(用数字逻辑的真实内容填充,脱敏后)
  • README.md —— 用法说明

字体

全部取自 ../fonts.tex(与仓库其他模板一致):

  • 宋体正文 → OUC Serif
  • 黑体标题 → OUC Sans
  • 西文 → 与正文同族或 Termes,按已有惯例

⚠️ 不用方正小标宋 / 仿宋_GB2312 —— 商业字体不能随仓库分发,
且换机器编不出来(这是 #17 脱敏时定下的规矩)。

表格用 tabularray

与 课程执行大纲/ 保持一致。理由:

  • 需要列宽自适应、跨行合并、长文本自动换行
  • tabularray 的 X 列比 tabularx 更好控制

结构设计要点

  1. 表 0 是不规则表(第 2、3 行是 2 列,其余 4~6 列),
    用 \SetCell[c=...]{c} 合并单元格实现
  2. 表 1 是打勾矩阵,空单元格留白供手写或填 ✓
  3. 表 3 教学进度是主要大表,5 列,第 4 列「主要内容概述」是长文本
  4. 表 4 成绩对应第 2、3 列都是长文本,需要自动换行

验收标准

  1. xelatex 编译通过:error 0
  2. 页数合理(源 docx 导出约 4~5 页)
  3. 6 个表格全部还原,行列数正确
  4. 长文本自动换行,不越界、不重叠
  5. 字体全部来自仓库(无系统字体依赖)
  6. WSL TeX Live 2025 与 Windows TeX Live 2022 双端一致
  7. 加入 verify_all.sh 的 TARGETS,全库 13 → 14 项

脱敏

源文件含真实姓名「杨永全」(责任教师)。按 #17 的规矩,
示例文件里换成虚构姓名,与仓库其他模板一致。
真实内容不放仓库。

不做

  • 不改源 docx
  • 不做 docx → LaTeX 的通用转换器(只针对这一个版式)
  • 不加 \usepackage{...} 之外的额外依赖
新增《中国海洋大学本科生课程大纲》LaTeX 模板(基于 2024 版数字逻辑 docx) ## 用户诉求 用户原话:「SynologyDrive\授课\数字逻辑\教学大纲,这个目录下,还有教学大纲的文件, 你找一个比较新的,改成latex模板。」 ## 源文件选择 目录 `C:\Users\Yongquan\SynologyDrive\授课\数字逻辑\教学大纲\` 下共 17 个文件, 按修改时间排序: | 文件 | 修改时间 | 说明 | |---|---|---| | **课程大纲模板-数字逻辑-2024版.docx** | **2025-01-02** | **最新,选它** | | 附件1.课程大纲模板-数字逻辑-2023版.docx | 2023-06-20 | 次新 | | 2022版课程大纲-数字逻辑.docx | 2023-10-27 | | | 其余 14 个 | 2015~2023 | 更旧 | 选 `课程大纲模板-数字逻辑-2024版.docx`(39600 字节,45 段落 + 6 表格)。 ## 源文档结构(已提取) ### 标题 「中国海洋大学本科生课程大纲」15pt 居中 ### 表 0:课程基本信息(6 行 × 6 列) ``` 课程名称 |(中文)数字逻辑 课程名称 |(英文)Digital Logic 课程代码 | 080502101231 | 责任教师 | 杨永全 课程属性 | 专业知识 | 课程性质 | 必修 学分 | 2.5 | 总课时 | 48 理论课时 | 32 | 实践课时 | 16 | 课外学时 | 32 ``` ### 八个章节 1. 课程介绍 —— 含「课程描述(中英文)」「设计思路」「课程与其他课程的关系」 2. 课程目标 —— 5 条目标 + 毕业要求指标点对应(3 个子段)+ 2 个表格 - 表 1:课程目标 × 指标点矩阵(6×6,空格待填 ✓ 标记) - 表 2:课程目标 × 教学内容/教学方法(6×3) 3. 学习要求 —— 4 条 4. 教学进度 —— 表 3(8×5:序号/专题/计划课时/主要内容概述/实验实践) 5. 参考教材与主要参考书 —— 1 条 6. 成绩评定 —— 三小节 - (一)考核方式 A - (二)成绩与能力要求对应分布 —— 表 4(6×4:序号/毕业要求/考核环节/成绩比重) - (三)成绩综合评分体系 —— 表 5(5×2) 7. 学术诚信 —— 1 段 8. 大纲审核 —— 教学院长 / 院学术委员会签章 ## 版式参数(已从 OOXML 量出) ``` 页面 210.01 × 297.00 mm(WPS 存的 A4,比标准多 0.01mm,用标准 A4) 边距 上下左右均 1440 twips = 25.40 mm header/footer 709 twips = 12.51 mm 正文字号 12pt(小四) 标题 15pt 居中 表格 9~10pt 字体表 Times New Roman / 宋体 / 黑体 / 仿宋_GB2312 / 仿宋 / 微软雅黑 ``` ## 实现方案 ### 目录 `课程大纲/` 参照仓库既有的 `课程执行大纲/` 风格(同样来自学校下发 docx 的复刻): - `oucSyllabus.sty` —— 版式包 - `课程大纲.tex` —— 示例(用数字逻辑的真实内容填充,脱敏后) - `README.md` —— 用法说明 ### 字体 全部取自 `../fonts.tex`(与仓库其他模板一致): - 宋体正文 → OUC Serif - 黑体标题 → OUC Sans - 西文 → 与正文同族或 Termes,按已有惯例 ⚠️ 不用方正小标宋 / 仿宋_GB2312 —— 商业字体不能随仓库分发, 且换机器编不出来(这是 #17 脱敏时定下的规矩)。 ### 表格用 tabularray 与 `课程执行大纲/` 保持一致。理由: - 需要列宽自适应、跨行合并、长文本自动换行 - `tabularray` 的 `X` 列比 `tabularx` 更好控制 ### 结构设计要点 1. **表 0 是不规则表**(第 2、3 行是 2 列,其余 4~6 列), 用 `\SetCell[c=...]{c}` 合并单元格实现 2. **表 1 是打勾矩阵**,空单元格留白供手写或填 ✓ 3. **表 3 教学进度**是主要大表,5 列,第 4 列「主要内容概述」是长文本 4. **表 4 成绩对应**第 2、3 列都是长文本,需要自动换行 ## 验收标准 1. `xelatex` 编译通过:error 0 2. 页数合理(源 docx 导出约 4~5 页) 3. 6 个表格全部还原,行列数正确 4. 长文本自动换行,不越界、不重叠 5. 字体全部来自仓库(无系统字体依赖) 6. WSL TeX Live 2025 与 Windows TeX Live 2022 双端一致 7. 加入 `verify_all.sh` 的 TARGETS,全库 13 → 14 项 ## 脱敏 源文件含真实姓名「杨永全」(责任教师)。按 #17 的规矩, 示例文件里换成虚构姓名,与仓库其他模板一致。 真实内容不放仓库。 ## 不做 - 不改源 docx - 不做 docx → LaTeX 的通用转换器(只针对这一个版式) - 不加 `\usepackage{...}` 之外的额外依赖
Author
Owner

已完成,提交 dc5e933

源文件

从 SynologyDrive\授课\数字逻辑\教学大纲\ 17 个文件里挑了最新的:

课程大纲模板-数字逻辑-2024版.docx(2025-01-02 修订,39600 字节)

次新的是 2023 版(2023-06-20),其余都是 2015~2023 年的旧版。

新增 课程大纲/

课程大纲/oucSyllabus.sty   版式包
课程大纲/课程大纲.tex      示例(数字逻辑真实内容,已脱敏)
课程大纲/README.md         用法 + 踩坑记录

用法:

bash build.sh 课程大纲          # 或 cd 课程大纲 && xelatex 课程大纲.tex

版式(全部从 OOXML 量出)

页面    A4 210×297mm
边距    上下左右均 25.4mm(正好 1 英寸)
正文    12pt      大标题 15pt 居中      表格 9~10pt

6 个表格全部还原:基本信息(不规则 6 行)、目标×指标点矩阵(6×6)、
目标×教学内容(6×3)、教学进度(8×5)、成绩对应(6×4)、评分体系(5×2)。

字体全部取自 ../fonts.tex(OUC Serif + OUC Sans),无系统字体依赖。
原 docx 的「仿宋_GB2312」「微软雅黑」是商业字体,按 #17 的规矩不能用。

两个坑,都很隐蔽

① tabularray 的 \SetCell 会吞掉下一格,而且不报错

A & \SetCell[c=2]{c} B & C & \SetCell[c=2]{c} D \\
% 渲染只得 A / B / D —— C 消失了,没有任何警告

正确写法是跨 n 列后用 n-1 个 {} 占位:

A & \SetCell[c=2]{c} B & {} & C & \SetCell[c=2]{c} D & {} \\

规律:& 总数固定为「列数-1」,与是否跨列无关。跨列只是把内容摊到
多格上,被摊掉的格要用 {} 顶住。

这个坑让「责任教师」「课程性质」「总课时」三个标签凭空消失了三轮,
每次都是靠 pymupdf 逐行数文字才发现的。编译全程 0 error 0 Overfull。

② xeCJK 带缩进的段落会多排一个字,也不报 Overfull

实测(A4,左右 25.4mm,版心右界 523.28bp):

写法 右缘
无缩进的纯中文段落 523.28 ✅
\hspace*{2em} 缩进 530.53 ❌ 超 7.25bp
\setlength{\parindent}{2em}\indent 530.53 ❌
\parbox{\linewidth}{...} 530.53 ❌

根因:xeCJK 算断行点时仍按「整行可用宽度」,比应停位置多放一个字。

✅ 正解是把 \hsize 也减掉缩进量:

\setlength{\hsize}{\dimexpr\linewidth-2em\relax}
\setlength{\parindent}{2em}

实测右缘 502.28bp,落在版心内。

验证

全库 14/14 通过(已加入 verify_all.sh TARGETS):

课程大纲  6 页  err=0  over=0

逐页越界检查:6 页最右 499.37~514.48bp,全在版心 523.3bp 内。
内容核查 17 项(标题、12 项基本信息、八章标题、关键段落、签字栏)全部命中。

双端一致:

环境 结果
WSL TeX Live 2025 6 页 err=0 over=0
Windows TeX Live 2022 6 页 err=0 over=0

与原文件的偏离(README 有表)

  1. 「六、成绩评定」原 docx 是 10.5pt,与其余七章 12pt 不一致(复制粘贴漏改),
    本模板统一 12pt。
  2. 表 0 的竖线按 6 等分统一,原 docx 逐行不同(tabularray 的限制)。

脱敏

责任教师等真实姓名换成虚构的「张远航」,与仓库其他模板一致。
真实内容不进仓库。

## 已完成,提交 `dc5e933` ### 源文件 从 `SynologyDrive\授课\数字逻辑\教学大纲\` 17 个文件里挑了最新的: **`课程大纲模板-数字逻辑-2024版.docx`**(2025-01-02 修订,39600 字节) 次新的是 2023 版(2023-06-20),其余都是 2015~2023 年的旧版。 ### 新增 `课程大纲/` ``` 课程大纲/oucSyllabus.sty 版式包 课程大纲/课程大纲.tex 示例(数字逻辑真实内容,已脱敏) 课程大纲/README.md 用法 + 踩坑记录 ``` 用法: ```bash bash build.sh 课程大纲 # 或 cd 课程大纲 && xelatex 课程大纲.tex ``` ### 版式(全部从 OOXML 量出) ``` 页面 A4 210×297mm 边距 上下左右均 25.4mm(正好 1 英寸) 正文 12pt 大标题 15pt 居中 表格 9~10pt ``` 6 个表格全部还原:基本信息(不规则 6 行)、目标×指标点矩阵(6×6)、 目标×教学内容(6×3)、教学进度(8×5)、成绩对应(6×4)、评分体系(5×2)。 字体全部取自 `../fonts.tex`(OUC Serif + OUC Sans),无系统字体依赖。 原 docx 的「仿宋_GB2312」「微软雅黑」是商业字体,按 #17 的规矩不能用。 ### 两个坑,都很隐蔽 **① tabularray 的 `\SetCell` 会吞掉下一格,而且不报错** ```latex A & \SetCell[c=2]{c} B & C & \SetCell[c=2]{c} D \\ % 渲染只得 A / B / D —— C 消失了,没有任何警告 ``` 正确写法是跨 n 列后用 n-1 个 `{}` 占位: ```latex A & \SetCell[c=2]{c} B & {} & C & \SetCell[c=2]{c} D & {} \\ ``` 规律:**`&` 总数固定为「列数-1」,与是否跨列无关**。跨列只是把内容摊到 多格上,被摊掉的格要用 `{}` 顶住。 这个坑让「责任教师」「课程性质」「总课时」三个标签**凭空消失了三轮**, 每次都是靠 pymupdf 逐行数文字才发现的。编译全程 0 error 0 Overfull。 **② xeCJK 带缩进的段落会多排一个字,也不报 Overfull** 实测(A4,左右 25.4mm,版心右界 523.28bp): | 写法 | 右缘 | |---|---| | 无缩进的纯中文段落 | 523.28 ✅ | | `\hspace*{2em}` 缩进 | 530.53 ❌ 超 7.25bp | | `\setlength{\parindent}{2em}\indent` | 530.53 ❌ | | `\parbox{\linewidth}{...}` | 530.53 ❌ | 根因:xeCJK 算断行点时仍按「整行可用宽度」,比应停位置多放一个字。 ✅ 正解是把 `\hsize` 也减掉缩进量: ```latex \setlength{\hsize}{\dimexpr\linewidth-2em\relax} \setlength{\parindent}{2em} ``` 实测右缘 502.28bp,落在版心内。 ### 验证 全库 **14/14 通过**(已加入 `verify_all.sh` TARGETS): ``` 课程大纲 6 页 err=0 over=0 ``` 逐页越界检查:6 页最右 499.37~514.48bp,全在版心 523.3bp 内。 内容核查 17 项(标题、12 项基本信息、八章标题、关键段落、签字栏)全部命中。 双端一致: | 环境 | 结果 | |---|---| | WSL TeX Live 2025 | 6 页 err=0 over=0 | | Windows TeX Live 2022 | 6 页 err=0 over=0 | ### 与原文件的偏离(README 有表) 1. 「六、成绩评定」原 docx 是 10.5pt,与其余七章 12pt 不一致(复制粘贴漏改), 本模板统一 12pt。 2. 表 0 的竖线按 6 等分统一,原 docx 逐行不同(tabularray 的限制)。 ### 脱敏 责任教师等真实姓名换成虚构的「张远航」,与仓库其他模板一致。 真实内容不进仓库。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: laoyang/ouc_latex_template#23