新增个人简历模板(简历/),字体全部换成仓库自带的 #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。
This commit is contained in:
2026-10-27 11:17:24 +08:00
parent 95afc9caa6
commit cc0dfb7257
28 changed files with 3566 additions and 5 deletions
+36 -1
View File
@@ -1,7 +1,7 @@
%======================================================================
% oucfonts.tex —— 中国海洋大学模板库的公共字体入口
%
% 本文件是仓库内**唯一**允许声明字体的地方。十个模板全部通过
% 本文件是仓库内**唯一**允许声明字体的地方。十一个模板全部通过
% \input{../fonts.tex}
% 取字体,不再各自写 \setCJKmainfont / \setmainfont。
%
@@ -134,6 +134,41 @@
},
]
% ------------------------------------------------------------------
% 小型大写(sc):用**字体形状替换**,不用 SmallCapsFont 选项
%
% 为什么需要它:简历模板的 \user / \resumetitle / \experience 都用了
% \textsc,而中文没有小型大写字形,不处理就每页刷 6 条
% LaTeX Font Warning: Font shape `TU/OUCSerif(0)/m/sc' undefined
% 惯例做法是让 sc 档**指回常规体**:\textsc{中文} 看起来不变(中文
% 本来也没有大小写),而 \textsc{English} 里的西文仍然走 \setmainfont
% 的 Termes 小型大写,行为正确。
%
% 为什么不写 SmallCapsFont —— 这里踩了整整一轮坑,结论留下免得重来:
%
% 1) SmallCapsFont 这个选项**与本文件上面的 ItalicFeatures /
% BoldItalicFeatures 互斥**。最小复现实测:
% 只有 SmallCapsFont + SmallCapsFeatures → 通过
% 再加 ItalicFeatures(带跨目录 Path) → 立刻报
% Package fontspec Error:
% The font "OUCSerif-Regular" cannot be found.
% 写 *-Regular、写全名 OUCSerif-Regular、写带 .otf 的、把两个键
% 挪到最后,全都报同一个错;把斜体换成同目录字体
% (ItalicFont = *-Bold)就又能过 —— 所以是**跨目录 Path 的相互作用**,
% 不是文件名写法问题。照着"IralicFont 怎么写的就怎么写"去改会一直失败。
%
% 2) 绕开的办法就是干脆不用那个选项,改用 LaTeX 原生的字体形状替换
% (\DeclareFontShape + <->ssub)。这条机制在 fontspec 选项之下,
% 不受选项间相互作用影响,效果完全等价。
%
% ⚠️ 第二个参数 OUCSerif(0) 里的 (0) 是 fontspec 给该字体生成的内部
% 族编号,不是笔误。若将来 \setCJKmainfont 换了字体名,这两行必须
% 同步改;写错**不会报错**,只会让 sc 警告悄悄回来 —— 改完看日志。
% ------------------------------------------------------------------
\DeclareFontShape{TU}{OUCSerif(0)}{m}{sc}{<->ssub * OUCSerif(0)/m/n}{}
\DeclareFontShape{TU}{OUCSerif(0)}{b}{sc}{<->ssub * OUCSerif(0)/b/n}{}
%======================================================================
% 三、字族命令
%