Commit Graph
7 Commits
Author SHA1 Message Date
laoyang 3906bb49a4 清理代码库中的开发过程内容
- 删除 WORKFLOW.md(开发流程文档,已移入记忆库)
- build.sh 去掉 WSL 相关说明
- 33 个源文件的注释:去掉踩坑记录、实测推导、原文件对比、工单号引用
- 保留技术参数、约束说明、命令含义

净删 399 行。全库 16/16 编译通过。
2026-11-01 09:29:00 +08:00
laoyang 69da5b41a6 简历排版修正:项目经验整块右移、西文换 Cochineal、课程执行大纲漏网 × #12
一、项目经验整块右移(简历/awesome-source-cv.cls)
  \rightcolumnlength 算早了:geometry 的 1.5cm 边距要到导言区结束才生效,
  cls 里那句 \setlength 读到 article 默认 \textwidth=345pt,算出 249.87pt,
  比应有的 417.02pt 少 167.15pt。longtable 把窄表居中排,整块右移 83.6pt。
  修法:计算挪进 \AtBeginDocument 并减去 | 竖线的 \arrayrulewidth;
  R 列由 >{\hfill}m{2.5cm} 改为 >{\raggedright\arraybackslash}p{2.5cm}。
  日期左边缘 145.1 -> 48.5pt,与其余章节严格对齐。
  这类错误零 error 零 warning,只能量 PDF 坐标才能发现。

二、西文换 Cochineal(fonts/cochineal/ + fonts.tex + 简历 cls)
  中文思源宋体配 Termes 时西文笔画偏细,中英混排会「陷进去」。
  Cochineal 宽 225.42pt vs Termes 229.68pt,只窄 1.9%,断行位置基本不动;
  Pagella/XCharter 宽 7~11%,会把全库断行推着变,故不选。
  字体 920KB 入 fonts/cochineal/(SIL OFL 1.1,附 OFL.txt),
  fonts.tex 新增 \oucUseCochineal 开关,只简历调用,其余 10 个模板不受影响。

三、换字体后暴露的真实缺陷
  西文窄 1.9% 让断点整体前移,ICIEA 那条论文冲出 88.49pt(文字顶到纸边)。
  根因是中文紧跟英文的位置不是断开点,整串被当长单词。
  加 \emergencystretch=3em 解决。

四、课程执行大纲漏网占位符(ouccourse.sty)
  ××学部××学院 硬编码在 \ccschool 里,#11 只扫了 .tex 没扫 .sty 所以漏了。
  拆成 \ccdepartment / \cccollege 两个名称宏,默认「信息科学与工程学部 /
  计算机科学与技术学院」。重编后全文 × 归零。

「代码库 PDF 没更新」经核实不成立:本地/远程 HEAD 均为 8984b93,
从服务器下载 8 个 PDF 逐字节比对全部一致,简历.pdf 3 页 0 个 ×。

验证:简历 3 页 0 error/0 Overfull/0 Underfull;全库 12 项编译回归与基线一致。
2026-10-27 13:13:54 +08:00
laoyang cc0dfb7257 新增个人简历模板(简历/),字体全部换成仓库自带的 #10
从个人目录的中文简历迁移为第 11 个模板,三处字体重做:

1) 字体三层依赖全部拆掉
   - 删 zh_cn-adobefonts_external/internal.sty(Adobe 宋/黑/楷/仿,56 MB,
     商业授权不可分发),中文字体改由 ../fonts.tex 提供
   - awesome-source-cv.cls 的 localFont 分支(SourceSansPro 9 个 .otf)
     整段删除,西文改走 ../fonts.tex 的 TeX Gyre Termes
   - fontawesome.sty 原按字体名找系统 FontAwesome,改成显式
     Path=../fonts/fontawesome/,并把 FontAwesome.otf 收进仓库

   顺带修掉一个设计缺陷:原 adobefonts 里 BoldFont/ItalicFont/SmallCapsFont
   全部指向 Regular,等于加粗不变、斜体不变。现用字体自带的真粗体。

2) 占位化:真实姓名/手机/邮箱/住址/出生年月/论文题名与 DOI/专利号/
   软著号/33 条获奖全部改为 ××× / 20××;真人照 a.jpg/a.png 换成
   PIL 生成的 400×400 中性剪影 photo.jpg

3) 排版修正
   - 左栏宽度改为 \dimexpr\linewidth-\leftcolumn-4\tabcolsep\relax 自适应,
     修掉长表格 Overfull 4.48pt(原来没把 4 个 \tabcolsep 算进去)
   - 抬头两处 \vspace*{...}\\、\smallskip\\ 改为 \\[...],
     修掉 Underfull \hbox (badness 10000)
   - \socialinfo 末尾多余的 \\ 去掉

fonts.tex 的改动(全库共享):\textsc 用的 sc 档改用
\DeclareFontShape{TU}{OUCSerif(0)}{m}{sc}{<->ssub * OUCSerif(0)/m/n}{}
做形状替换,而不是 SmallCapsFont 选项 —— 后者与本文件 ItalicFeatures 的
跨目录 Path 互斥,任何写法都报 The font "OUCSerif-Regular" cannot be found.

回归:11 个模板全部零 error 编译通过;科技报告/试卷/课程执行大纲
文本与改动前逐字一致,4 个既有 boxwarn 为改动前基线,未新增。

编译:cd 简历 && xelatex 简历.tex 跑两遍,3 页,零 error/Underfull/Overfull。
嵌入字体仅 OUCSerif-{Regular,Bold}、TeXGyreTermes-{Regular,Bold}、FontAwesome。
2026-10-27 11:17:24 +08:00
laoyang a29f193cff 新增成绩构成说明 LaTeX 模板(成绩构成说明/) #9 2026-10-27 09:15:58 +08:00
laoyang 25dc872062 新增课程教学日历 LaTeX 模板(课程教学日历/) #8
把学校下发的通用空白表「附件3:中国海洋大学课程教学日历(理论课程)」
做成 XeLaTeX 模板,与 试卷归档封面/、试卷归档目录/ 同一套做法。

版式按原 .doc 逐项还原并实测标定:
- 表宽 174.625mm(tblW 9900 twips),tblInd 为负(−13.97mm),
  表格比版心更靠左,可见左边界 15.875mm
- 7 列宽度取 gridCol − 2×colsep − 线宽
- 边框 0.5pt(w:sz=4),内边距 1.905mm(108 twips)
- 字号 14 / 12 / 10.5bp 三档,全部用 bp(Word 的 pt 是 PostScript pt)
- 行高按「行数 × 23pt」显式给 ht(原件 w:line=460 exact)

实测校验(pymupdf 读两版 PDF):
- 8 条竖线 x 偏差 ≤ 0.004mm
- 纵向锚点:附件号 / 标题 / 表格顶线 Δ = 0.00pt,其余 ≤ 0.03pt
- 行高 18 行中 17 行 Δ ≤ 0.4pt
- 字号 14.00 / 12.00 / 10.50 精确
- 零警告(无 Overfull / Underfull / 缺字)

真实数据零泄漏:原 .doc 是填过的实例,模板把所有字段换成占位符
(××××、000000000000、×、20××),已 grep 确认课程名、开课号、
教师姓名、年份、16 周日期与章节名均零命中。

README 记录五类坑:bp 单位、固定行距在 TeX 里不等于 baselineskip、
linespread 必须在 fontsize 之后、SetCell 的 c 列不折行、leftskip 与
geometry 叠加;以及原件五处不一致(第一周行距 15.6pt、周次列对齐
前后不同、表头折行数、表头不加粗、签字栏用空格顶位)。

注:本模板 3 页,原件 2 页 —— 因不复制第一周行距的疏漏,该行多 22pt。
2026-10-27 08:37:28 +08:00
laoyang 8fa44b138c 新增试卷归档目录 LaTeX 模板 #7
把「附件2:信息科学与工程学院归档目录(理论课).doc」做成 LaTeX 模板,
落在 试卷归档目录/。版式逐项照原 .doc 还原,尺寸全部注明换算过程。

- oucgddir.sty:A4、表宽 150.81mm、13 行固定行高、单元格宏
- 试卷归档目录.tex:12 项核对清单
- README.md:用法 / 版式参数表 / 实测数据 / 踩坑记录
- 根 README.md、fonts.tex:模板清单加一项,「七个」改「八个」

与原稿实测对比(pymupdf 读 PDF):
  表格竖线 x Δ ≤ 0.001mm,横线 y Δ ≤ 0.006mm
  32 行文字水平中心 Δ ≤ 0.11pt,字号 24/18/12/10.45 全部精确
  编译 1 页,零 Overfull / Underfull / 缺字

踩到并解决的五个坑:
  1. \fontsize 必须用 bp(TeX pt 比 PostScript pt 大 0.36%,24pt 实测 23.91)
  2. xeCJK 吞连续半角空格 → 标题字间用 \gdgap 手动 kern 24bp
  3. xeCJK 默认 PunctStyle=quanjiao 会挤压全角括号,使含括号的行整行
     右移 4.23pt → 必须 \xeCJKsetup{PunctStyle=plain}
  4. tabularray 把线宽算进列宽、ht 不含 hline 线宽、boxes 比 Σwd 多
     0.4945pt → 三处都要实测标定
  5. 单元格整体下移只有「尾部 \vspace*」有效,顶部 \vspace*/rule 会被
     首行 ascent 吃掉,\raisebox 被 m 居中抵销

字体:方正楷体_GB2312(商业,不可分发)→ OUC Kai(霞鹜文楷子集,OFL 1.1),
西文 Times New Roman → TeX Gyre Termes。字宽逐字相同(60.00 / 120.00pt 全等)。
2026-10-27 07:51:10 +08:00
laoyang 8aa979739a 字体统一:建公共字体目录,全部改用开源可商用字体 (#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%
2026-10-27 00:43:14 +08:00