Files
ouc_latex_template/简历/README.md
T
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

112 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 中国海洋大学个人简历 LaTeX 模板
中文个人简历模板,A4 单页两栏式排版:左侧窄栏放时间与阶段,右侧宽栏放具体内容,抬头带圆形头像与联系方式图标行。
> 本目录的版式来自一份在用的中文简历(`awesome-source-cv` 系的衍生版)。**字体、占位内容、头像三处都已重做**,详见下文「与上游的差别」。
## 特性
- **字体全部取自仓库公共字体包**:中文 OUC Serif(宋体)/ OUC Sans(黑体)/ OUC Kai(楷体)/ Zhuque Fangsong(仿宋),西文 TeX Gyre Termes,图标 FontAwesome —— 没有任何一个字体来自系统或 TeX Live 安装,**换机器编译结果一致**;
- **真粗体**:标题、姓名、区块头用的都是字体自带的粗体,不是算法描边;
- **分区可拆**:`section_01` ~ `section_10` 各自一个文件,不想要哪块就把对应 `\input` 注释掉;
- **圆形头像**:`\photo{2.5cm}{photo}` 自动裁成圆形,尺寸随参数走;
- **条目化排版**:论文、专利、项目、获奖等用 `\emptySeparator` 分条,时间栏自动对齐。
## 环境要求
- TeX Live 2022 及以上,**必须 XeLaTeX** 编译;
- 不需要安装任何字体,`fonts/` 里有全套。
## 编译
在**本目录**下编译(不要在仓库根调用,`fonts.tex` 里的 `Path=../fonts/` 是相对当前工作目录的):
```bash
cd 简历
xelatex 简历.tex
xelatex 简历.tex # 跑两遍:第一遍写 .aux,第二遍才能取到正确的页码与交叉引用
```
编译结果:3 页,日志零 error、零 Underfull、零 Overfull。嵌入字体只有 5 个,全部来自本仓库:
| 字体 | 用途 |
|---|---|
| `OUCSerif-Regular` / `OUCSerif-Bold` | 中文正文与标题 |
| `TeXGyreTermes-Regular` / `-Bold` | 西文正文与标题 |
| `FontAwesome` | 联系方式行图标 |
## 改什么、在哪儿改
| 要改的内容 | 位置 |
|---|---|
| 姓名、职称、联系方式 | `简历.tex` 的 `\name` / `\tagline` / `\socialinfo` |
| 头像 | 替换 `photo.jpg`(正方形,400×400 以上,会自动裁圆) |
| 各区块正文 | `section_01_headline.tex` ~ `section_10_awards.tex` |
| 不想显示的区块 | 在 `简历.tex` 里把对应 `\input` 注释掉 |
| 左侧时间栏宽度 | `awesome-source-cv.cls` 的 `\setlength{\leftcolumn}{2.5cm}`,右侧栏宽会自动跟着算 |
| 主题色 | `awesome-source-cv.cls` 的 `accentcolor` |
## 与上游的差别(改动都在文件头注释里写明了原因)
### 1. 字体:三层依赖全部拆掉
上游那份简历的字体走三条路,每条都不能随仓库分发或不可复现:
| 上游做法 | 问题 | 本模板的处理 |
|---|---|---|
| `zh_cn-adobefonts_external.sty` 设 Adobe 宋/黑/楷/仿 | 56 MB 商业字体,无授权不可分发 | **删掉这两个文件**,改由 `../fonts.tex` 提供中文字体 |
| `awesome-source-cv.cls` 的 `localFont` 分支设 `SourceSansPro-*`(9 个 .otf) | 同上,且与仓库已有西文字体重复 | cls 里的 `\setmainfont` 整段删除,西文改走 `../fonts.tex` 的 TeX Gyre Termes |
| `fontawesome.sty` 用字体名找系统 FontAwesome | 机器上没装就编不过 | 改成显式 `Path=../fonts/fontawesome/`,字体文件已入仓库 |
删掉的两个文件里还有个隐藏问题值得记一笔:原 `zh_cn-adobefonts_external.sty` 里
`BoldFont` / `ItalicFont` / `SmallCapsFont` **全部指向 `Regular` 那一档** ——
等于加粗不变、斜体不变,标题层次全靠字号撑。换成真粗体后版面明显立起来了。
### 2. 占位:真人信息全部清空
模板必须能公开分发,所以姓名、手机、邮箱、住址、出生年月、论文题名与 DOI、专利号、
软著登记号、获奖名称全部改成 `×××` / `20××` 形式。照着填即可,版式不受影响。
`a.jpg` / `a.png`(2085×2085 的真人照)换成了 PIL 生成的 400×400 中性剪影 `photo.jpg`。
### 3. 排版小修
- **左栏宽度改自适应**:原来 `\leftcolumn 2.5cm + \rightcolumnlength 14.8cm` 看着
小于版心 18 cm,但两列共 4 个 `\tabcolsep`(≈0.85 cm)没算进去,实际 18.15 cm,
日志有 `Overfull 4.48pt`。改成
`\dimexpr\linewidth-\leftcolumn-4\tabcolsep\relax` 由版心反算,改页边距也不用再调数字。
- **抬头去掉两处空盒**:`\vspace*{0.3cm}\\` 和 `\smallskip\\` 会在换行前多产生一个
空 hbox(日志刷 `Underfull \hbox (badness 10000)`),改成 `\\[0.3cm]` /
`\\[\smallskipamount]`,间距效果不变。
- **`\socialinfo` 末尾不要留 `\\`**:`简历.tex` 里最后一行 `\address{...}` 后面加了
`\\` 同样会多一个空行。中间的 `\\` 是分行,必须保留。
## 写的时候容易踩的三个坑
1. **`\newExperience` 的参数顺序是「结束在前、开始在后」** —— 上游定义就是先印
`#1`(结束时间)再印 `#5`(开始时间),第一次用极易写反,写反了两栏内容会错位。
2. **每条后面必须跟 `\emptySeparator`**,否则下一条会并进同一格,不换行。
3. **关键词用英文逗号 `,` 分隔**(`\foreach` 按 `,` 切分)。用中文逗号会把整串当成
一个标签,撑出一个超宽的大框。
## 字体换成 SmallCaps 时的坑(已在 `../fonts.tex` 里解决)
`\user` / `\resumetitle` / `\experience` 都用了 `\textsc`,而中文没有小型大写字形,
不处理会每页刷 6 条 `Font shape 'TU/OUCSerif(0)/m/sc' undefined`。
修的时候注意:`\setCJKmainfont` 里加 `SmallCapsFont` **与本仓库的 `ItalicFeatures`
互斥** —— 斜体那一档带跨目录 `Path`,会把小型大写的字体查找带偏,无论写
`*-Regular`、全名、还是带 `.otf` 全报
`The font "OUCSerif-Regular" cannot be found.`。
正解在 `../fonts.tex` 里用的是 LaTeX 原生的形状替换:
```latex
\DeclareFontShape{TU}{OUCSerif(0)}{m}{sc}{<->ssub * OUCSerif(0)/m/n}{}
\DeclareFontShape{TU}{OUCSerif(0)}{b}{sc}{<->ssub * OUCSerif(0)/b/n}{}
```
比 fontspec 的选项低一层,不受选项间相互作用影响,效果等价。
## 授权
`LICENSE` 沿用上游。字体授权见仓库根 `../fonts/README.md`,全部允许免费商用与再分发。