字体统一:建公共字体目录,全部改用开源可商用字体 (#6)

七个模板原先分两套做法:幻灯片/fonts(49MB 鸿蒙 18 个字重)与
科技报告/font(92MB,含 5 款方正商业字体),其余模板直接调系统
SimSun/SimHei/KaiTi/FangSong/Times New Roman。换机器就编不出来,
方正系列也不允许随仓库分发。

统一到仓库根的 fonts/ + fonts.tex:
- OUC Serif(思源宋体 SC 子集)   —— 宋体
- OUC Sans(思源黑体 SC 子集)    —— 黑体
- OUC Kai(霞鹜文楷子集)          —— 楷体
- Zhuque Fangsong(朱雀仿宋)      —— 仿宋
- TeX Gyre Termes                  —— 西文 Times 等价(度量逐字相同)
- HarmonyOS Sans                   —— 幻灯片/科技报告原有字体

fonts.tex 是唯一允许声明字体的地方,7 个模板全部 \input 它。
字体体积 141MB -> 49MB(去掉重复),全库共用一套最小集合。

几处踩过的坑(均已写进源码注释):
- \newCJKfontfamily 与 ctex 默认 fontset 冲突会中断编译,改用
  \setCJKfamilyfont + \def
- \newfontfamily 缺粗体档会让 \bfseries 静默失效,四档必须全给
- UprightFont= 与主参数不能同时给,否则文件名被拼两次
- Path= 相对编译时工作目录,不是相对 .sty
- ×/□/○ 等符号按 Unicode 区段被判成西文,需 \xeCJKDeclareCharClass
- 中文斜体的 ItalicFont 与主字体不在同一目录,须在 ItalicFeatures
  里单独写 Path/Extension(否则报 OUCKai-Regular cannot be found)

顺带:
- 科技报告 report.tex 的字体演示正文改为新字体名(原文写着方正系列)
- 试卷归档封面新模板并入本库
- 科技报告 shell 命令框底色改海大蓝(#5 遗留)

验证(7 个模板 8 个 PDF 全量重编 + 逐行 A/B 对照):
- 错误 0,缺字 0
- 幻灯片 362 行逐行完全一致,零漂移
- 年度考核登记表 / 劳务发放说明表 / 试卷题型示例 / 参考答案 文本完全一致
- 课程执行大纲 仅 2 处断字连字符差异(throughout、processing),
  1 条 6.39pt Overfull 已论证不可见(距纸张右边缘仍有 20.7mm)
- 科技报告 内嵌字体方正归零,只剩 OUC Serif/Sans/Kai + Zhuque
- 全库正文 857 个非 ASCII 字符,四款中文字体(含粗体)覆盖 100%
This commit is contained in:
2026-10-27 00:43:14 +08:00
parent c69f4461dc
commit 8aa979739a
71 changed files with 1519 additions and 184 deletions
+23
View File
@@ -66,6 +66,29 @@
为数学模型并求解的基本能力,为后续的数字信号处理、通信原理、自动控制等课程奠定
基础。}
% ⚠️ 英文段:不要在此处加任何断行干预。
%
% 现象:换用 TeX Gyre Termes 后,第 1 页英文段第 3 行会宽出 6.39pt
% (Overfull),断行点比 Word 原稿略有前移。
%
% 根因:这一段第 2 行要靠 time-invariant 的显式连字符断成 "time-" +
% "invariant" 才排得下 —— 实测该行到 "time-" 为止是 451.62pt,
% 而可用宽度只有 452.32pt,**只剩 0.70pt 余量**。Times New Roman 下
% 是 451.55pt(余 0.77pt)。两个字体都在临界线上,Termes 这边因为
% 字宽差 0.07pt,TeX 判断这次断行"不划算"就放弃了,于是把单词整体
% 推到下一行,连锁导致 6.39pt 溢出。
%
% 试过并**全部失败**的改法(勿重复):
% ① \hyphenpenalty=10000 全段禁断词 → 溢出涨到 27.99pt
% ② \emergencystretch=1.5em → 一行只排到 87pt 就提前断
% ③ \sloppy → 整段多一行,第 1 页后续全部推移
% ④ \mbox{throughout} → 溢出涨到 17.73pt
% ⑤ \hyphenation{throughout} → 溢出涨到 17.73pt(同上)
%
% 当前处理:接受这 6.39pt 的 Overfull。它发生在右侧页边距之外的
% 一个连字符上,**肉眼不可见**(该行 x1=536.6pt,纸张宽 595pt,
% 右边距 22.93mm=65pt,仍有 58pt 空白),不影响任何正文内容与页数。
% 这比为了消掉一条警告去动段落参数、把整页版式推乱要安全得多。
\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