字体统一:建公共字体目录,全部改用开源可商用字体 (#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
+3 -3
View File
@@ -6,7 +6,7 @@
## 特性
- **中英文字体一体化**:英文默认使用鸿蒙字体(HarmonyOS Sans),中文使用方正书宋 / 小标宋 / 楷体 / 仿宋 / 中等线,字体文件随模板附于 `font/` 目录,编译时自动调用,**无须安装任何字体**;
- **中英文字体一体化**:英文默认使用鸿蒙字体(HarmonyOS Sans),中文使用仓库公共字体包(宋体 / 宋体粗 / 楷体 / 仿宋 / 黑体),字体文件在仓库根 `../fonts/` 目录,编译时自动调用,**无须安装任何字体**;
- **模块化文档类**:`report.cls` 按功能拆分为 `cls/` 下的多个模块(全局设定、字体、页面布局、标题、页眉页脚、信息框、代码块等),便于按需修改;
- **三种信息框**:`titledbox`(带标题)、`notebox`(提示)、`importantbox`(重要),基于 tcolorbox 实现;
- **代码排版**:基于 listings 预设了多种样式,支持行内命令 `shellbox` / `invertedshellbox` 展示 shell 命令及输出;
@@ -35,7 +35,7 @@
xelatex report.tex
```
5. 临时切换字体可使用命令:`\fzss`(方正书宋)、`\fzxbs`(方正小标宋)、`\fzkai`(方正楷体)、`\fzfs`(方正仿宋)、`\fzzdx`(方正中等线)、`\hm`(鸿蒙字体)。
5. 临时切换字体可使用命令:`\fzss`(宋体)、`\fzxbs`(宋体粗)、`\fzkai`(楷体)、`\fzfs`(仿宋)、`\fzzdx`(黑体)、`\hm`(鸿蒙字体)。命令名沿用旧版(fz 取自原方正系列),实际用的是随仓库分发的开源字体,对应关系见 `cls/font.cls` 的注释。
## 署名与联系方式(二次分发前请修改)
@@ -72,7 +72,7 @@
├── cls/ # 功能模块:全局设定、字体、页面、标题、信息框、代码块等
├── input/ # 文档内容:封面、目录、摘要、信息与整体设置
├── figs/ # 图片资源
├── font/ # 鸿蒙及方正字体文件(自动加载)
├── (字体在仓库根 fonts/) # 不再自备字体,详见 ../fonts/README.md
├── fontawesome.pdf # fontawesome 图标使用手册
└── report.tex # 主文件(XeLaTeX 编译入口)
```