新增 cvlist 环境:进入环境后每个 \item 自动 +1,条目里一个标记都不用写。
三节各只改两行(itemize → cvlist{类别}),删掉全部 15 处 \cvmark。
\begin{cvlist}{软著}
\item 某某系统. 2024SR9999901. ...
\end{cvlist}
概述:登记软件著作权 \cvnum{软著} 项
实测:加 1 条 → 概述自动 5→6;删 2 条 → 自动 5→3;还原 → 回 5。
版面与基线逐行完全一致(66/75/34 行)——cvlist 内部就是普通 itemize。
普通 itemize 不受影响(实测 3 条子项未被误计)。
专利、科研项目仍用逐条 \cvmark:它们一条要算两个类别
(专利+第一发明人、科研项目+主持/负责),cvlist 一次只能管一类。
README 新增「先回答一个最常问的问题:它是全自动的吗?」用表格直接回答
三种写法的差别,并补「全自动写法」「半自动写法」「加一个全新的类别」
三个小节,含可直接抄的代码。
踩坑:\cvmark 内部用 \detokenize 处理类别名,传参前必须 \expandafter
展开 \cv@listcat,否则写进 .cvnum 的是字面串 "\cv@listcat"。
验证:0 error / 0 Overfull / 0 Underfull,3 页;全库回归与基线一致。
374 lines
20 KiB
Markdown
374 lines
20 KiB
Markdown
# 中国海洋大学个人简历 LaTeX 模板
|
||
|
||
中文个人简历模板,A4 单页两栏式排版:左侧窄栏放时间与阶段,右侧宽栏放具体内容,抬头带圆形头像与联系方式图标行。
|
||
|
||
> 本目录的版式来自一份在用的中文简历(`awesome-source-cv` 系的衍生版)。**字体、占位内容、头像三处都已重做**,详见下文「与上游的差别」。
|
||
|
||
## 特性
|
||
|
||
- **字体全部取自仓库公共字体包**:中文 OUC Serif(宋体)/ OUC Sans(黑体)/ OUC Kai(楷体)/ Zhuque Fangsong(仿宋),西文 Cochineal,图标 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 # 必须跑两遍,原因有二:
|
||
# ① 页码与交叉引用
|
||
# ② 概述的成果数字读自 简历.cvnum,第一遍是空的
|
||
```
|
||
|
||
用 `latexmk -xelatex 简历.tex` 也行,它自己会跑够遍数。
|
||
|
||
编译结果:3 页,日志零 error、零 Underfull、零 Overfull。嵌入字体只有 7 个,全部来自本仓库:
|
||
|
||
| 字体 | 用途 |
|
||
|---|---|
|
||
| `OUCSerif-Regular` / `OUCSerif-Bold` | 中文正文与标题 |
|
||
| `Cochineal-Roman` / `-Bold` / `-Italic` | 西文正文、标题与斜体 |
|
||
| `OUCKai-Regular` | 中文斜体(楷体代斜体,中文惯例) |
|
||
| `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` 提供的 Cochineal |
|
||
| `fontawesome.sty` 用字体名找系统 FontAwesome | 机器上没装就编不过 | 改成显式 `Path=../fonts/fontawesome/`,字体文件已入仓库 |
|
||
|
||
删掉的两个文件里还有个隐藏问题值得记一笔:原 `zh_cn-adobefonts_external.sty` 里
|
||
`BoldFont` / `ItalicFont` / `SmallCapsFont` **全部指向 `Regular` 那一档** ——
|
||
等于加粗不变、斜体不变,标题层次全靠字号撑。换成真粗体后版面明显立起来了。
|
||
|
||
### 2. 内容:真人信息全部换成一套完整虚构示例
|
||
|
||
模板必须能公开分发,所以原件里的真人姓名、手机、邮箱、住址、出生年月、论文题名与 DOI、
|
||
专利号、软著登记号、获奖名称**一个都没保留**。
|
||
|
||
替换方式**不是全打 `×××`**——满篇叉号的样张既看不出排版效果,也没法直接对着改,
|
||
一页纸全是 ×,读的人都不知道哪行该填什么。所以填的是**一整套自洽的虚构人物**:
|
||
|
||
| 项 | 虚构值 |
|
||
|---|---|
|
||
| 姓名 / 单位 | 张远航,中国海洋大学 信息科学与工程学部 计算机科学与技术学院 **教授、博导** |
|
||
| 出生 / 籍贯 | 1985.03,山东青岛 |
|
||
| 方向 | 海洋遥感信息处理、机器学习与海洋大数据 |
|
||
| 手机 / 邮箱 | `(+86) 138 0000 0000` / `yhzhang@ouc.edu.cn` |
|
||
| 学历 | 2002–2006 本科 → 2006–2009 硕士 → 2009–2013 博士(2011–2012 南安普顿大学联培) |
|
||
| 工作 | 2013.07 博士后 → 2016.09 副教授 → 2021.12 教授 |
|
||
|
||
正文十节(`section_01`~`section_10`)也一并填满:80 余字个人简介、3 段工作经历、
|
||
4 段学历、9 篇论文、9 项专利、5 项软著、5 个项目、3 项成果转化、4 项教研项目、16 项获奖。
|
||
|
||
**假数据都留了肉眼可辨的标记**,不会被人误当真的抄走:
|
||
|
||
- 论文 DOI 统一 `10.9999/…`(`.9999` 段是编造专用段,真实 DOI 不走这里)
|
||
- 专利号统一 `ZL20999900000N.x`,软著登记号统一 `2024SR999990N`
|
||
- 期刊名是真实的(IEEE TGRS、Remote Sensing 等),但**题名全是编的**
|
||
- 成果转化的受让单位一律带「(示例)」后缀
|
||
- 头像 `a.jpg` / `a.png`(2085×2085 的真人照)换成 PIL 生成的 400×400 中性剪影 `photo.jpg`
|
||
|
||
替换时把 `section_01`~`section_10` 整段换成自己的即可,版式不受影响;
|
||
字数变化会自动重排,不需要动 `.cls`。
|
||
|
||
### 3. 排版小修
|
||
|
||
- **项目经验不再「缩进一大截」**:这一节原来整块右移了约 3.4 cm,与其他章节的
|
||
日期列对不齐(145.1pt vs 48.5pt)。根因不是 `\hfill` 也不是竖线,而是
|
||
`\rightcolumnlength` **算早了**——`geometry` 的边距要到导言区结束才生效,
|
||
而 cls 里那句 `\setlength` 执行得更早,读到 article 默认的 345pt 文字宽,
|
||
算出 249.87pt,比应有的 417.02pt 少了 167.15pt;`longtable` 把这张窄表居中排,
|
||
于是整块右移 167.15/2 ≈ 83.6pt。修法两条:计算挪进 `\AtBeginDocument`
|
||
(并额外减去 `|` 竖线的 `\arrayrulewidth`=0.4pt);`R` 列由
|
||
`>{\hfill}m{2.5cm}`(固定宽右贴)改为 `>{\raggedright\arraybackslash}p{2.5cm}`。
|
||
改后日期左边缘 145.1 → **48.5pt**,与工作经历/教育经历/奖励与荣誉严格一致。
|
||
⚠️ 这类错误**零 error、零 warning**,只看日志发现不了,必须量 PDF 坐标。
|
||
- **左栏宽度改按版心反算**:原来 `\leftcolumn 2.5cm + \rightcolumnlength 14.8cm`
|
||
看着小于版心 18 cm,但两列共 4 个 `\tabcolsep`(≈0.85 cm)没算进去,实际 18.15 cm,
|
||
日志有 `Overfull 4.48pt`。改成由 `\textwidth` 减去左列、列间距与竖线宽度,
|
||
改页边距也不用再调数字。
|
||
- **中西文之间加断行弹性**:论文条目里「…Applications (ICIEA), 88--93. 中国青岛…」
|
||
这类「长英文名紧跟中文」的串,XeLaTeX 默认不在中英交界处断开,会把整串当
|
||
一个长单词硬冲出去(实测冲出 88.5pt,文字顶到纸边)。给 itemize 加
|
||
`\emergencystretch=3em` 解决,不动字体、不改内容、不影响其他环境。
|
||
- **抬头去掉两处空盒**:`\vspace*{0.3cm}\\` 和 `\smallskip\\` 会在换行前多产生一个
|
||
空 hbox(日志刷 `Underfull \hbox (badness 10000)`),改成 `\\[0.3cm]` /
|
||
`\\[\smallskipamount]`,间距效果不变。
|
||
- **`\socialinfo` 末尾不要留 `\\`**:`简历.tex` 里最后一行 `\address{...}` 后面加了
|
||
`\\` 同样会多一个空行。中间的 `\\` 是分行,必须保留。
|
||
|
||
### 4. 西文字体换成 Cochineal
|
||
|
||
中文用思源宋体(中等粗细),原先配的 **TeX Gyre Termes** 是 Times 的度量兼容替代,
|
||
笔画偏细偏紧,中英混排时西文那一段视觉上会「陷进去」。改用 **Cochineal**
|
||
(Michael Sharpe 据 Minion 设计,SIL OFL 1.1,920 KB 已入 `../fonts/cochineal/`)。
|
||
|
||
| 字体 | 同一句英文宽(10pt) | 相对 Termes | x 高 |
|
||
|---|---|---|---|
|
||
| TeX Gyre Termes(原) | 229.68pt | 100.0% | 0.450 |
|
||
| **Cochineal(现)** | 225.42pt | **98.1%** | 0.433 |
|
||
| Libertinus Serif | 234.62pt | 102.2% | 0.433 |
|
||
| XCharter | 246.69pt | 107.4% | 0.481 |
|
||
| TeX Gyre Pagella | 254.40pt | 110.8% | 0.472 |
|
||
|
||
选 Cochineal 的理由是**宽度几乎不变(窄 1.9%)**,断行位置和表格列宽基本不动;
|
||
Pagella / XCharter 宽 7~11%,会把全库的断行推着变。
|
||
|
||
⚠️ 三点务必注意:
|
||
|
||
1. **只影响简历**。切换命令 `\oucUseCochineal` 定义在 `../fonts.tex`,
|
||
但**不是**全局生效,只有本模板的 cls 调用。改全库请改 `\setmainfont` 本身。
|
||
2. **必须放在 `\AtBeginDocument` 里**。cls 执行时主文件还没 `\input{../fonts.tex}`,
|
||
那个命令尚未定义,直接调用会报 `Undefined control sequence`。
|
||
3. **换西文字体后必须复查 Overfull**。字体窄 1.9% 会让断点位置整体前移,
|
||
原本「刚好挤进去」的长串就会暴露成真溢出——本次换字体就是这样才发现
|
||
ICIEA 那条论文冲出 88.5pt 的。
|
||
|
||
### 5. 左上角校徽(可选)
|
||
|
||
默认**不印**校徽,`简历.tex` 里加一行才出现:
|
||
|
||
```latex
|
||
\cvlogo{28mm} % 横式彩色校徽(默认)
|
||
\cvlogo{28mm}[ouc_logo_彩色] % 换圆形校徽
|
||
\cvlogo{28mm}[ouc_横式_海大红] % 换配色
|
||
```
|
||
|
||
位置默认距**纸边**左 10mm、上 6mm(不随页边距变),导言区可微调:
|
||
|
||
```latex
|
||
\setlength{\cvlogox}{12mm}
|
||
\setlength{\cvlogoy}{8mm}
|
||
```
|
||
|
||
`简历/logos/` 下**只放实际用到的那一个**(横式彩色,377 KB)。想换款式从
|
||
`../科技报告/logos/` 复制过来——那边是全部官方 VI 素材:
|
||
|
||
| 文件 | 形状 | 像素 |
|
||
|---|---|---|
|
||
| `ouc_logo_{彩色,海大红,海大蓝,天蓝,专金,墨黑}.png` | 圆形 | 1200×1200 |
|
||
| `ouc_横式_{彩色,海大红,海大蓝,黑}.png` | 横式 | 2400×640 |
|
||
|
||
不预先全放进来,是因为每个 300~380 KB,用不到就是纯占体积。
|
||
|
||
⚠️ 四点务必注意:
|
||
|
||
1. **28mm 是这块空间的上限附近**。简历页边距只有 15mm,姓名墨迹顶在 17.2mm;
|
||
28mm 宽的横式 logo 高 7.06mm,放在距顶 6mm 处下沿到 13.1mm,距姓名仍有
|
||
11.6pt(4.1mm)。再大就会挤到姓名。
|
||
2. **距顶不能照搬科技报告的 20mm**。科技报告页边距 27mm,简历只有 15mm,
|
||
照抄会直接压到姓名上。同理距顶 8mm 只剩 2mm 间隙,视觉上贴着。
|
||
3. **必须用负 `\vspace*{-17pt}` 抵消**。`tikzpicture` 即使内容全是 `overlay`,
|
||
本身仍占一行高度(17pt),会把姓名整体往下推。`\smash`、`\hbox to 0pt`、
|
||
`\vbox to 0pt` 三种写法都消不掉——要断行就得有 `\par`,有 `\par` 就有行高。
|
||
这 17pt 与 logo 尺寸无关(18~30mm 五档实测一致),改 `\parskip` 或正文字号
|
||
后需重新量。
|
||
4. **位置偏小,专业印刷需上调**。距纸左 10mm 已接近 A4 裁切余量(一般
|
||
10~12mm),距顶 6mm 也偏紧。屏幕阅读和普通办公打印没问题(A4 不裁切),
|
||
若要印刷装订,把 `\cvlogoy` 改成 8mm 以上,并接受 logo 与姓名靠得近一点。
|
||
|
||
⚠️ 体积代价:PDF 从 158 KB 涨到 573 KB(内嵌 2400×605 的原图,实际只用到
|
||
28mm ≈ 660px,约 3.6 倍冗余)。保留原图是为了将来放大不糊;真要瘦身,
|
||
把 png 缩到 700px 宽即可。
|
||
|
||
## 概述里的成果数字自动统计
|
||
|
||
第一段概述通常要写「发表论文 N 篇、授权专利 M 项、转化 K 项……」。这些数字如果
|
||
手写,每增删一条论文就得回头改概述,非常容易漏改。本模板让它们**自动从正文条目
|
||
数出来**。
|
||
|
||
### 先回答一个最常问的问题:它是全自动的吗?
|
||
|
||
**分两种,取决于章节用哪种写法。**
|
||
|
||
| 写法 | 要手动做什么 | 适合什么章节 |
|
||
|---|---|---|
|
||
| **`cvlist` 环境**(全自动) | **什么都不用做**。写 `\item` 就自动算一条。 | 一条 = 一个成果的章节:软著、成果转化、教研项目 |
|
||
| **`\cvmark` 逐条标记**(半自动) | 每条末尾加一个 `\cvmark{类别}` | 一条要算进**多个类别**的章节:专利(要同时算"专利"和"第一发明人")、科研项目(要同时算"科研项目"和"主持/负责") |
|
||
| **`\cvtagcount`**(半自动) | 每条末尾写 `\cvtagcount{SCI}`,替代原来的 `\textbf{SCI}` | 论文(收录类型本来就要显示出来,顺手计数) |
|
||
|
||
也就是说:**三个你关心的章节(软著、成果转化、教研项目)已经是全自动的,不需要
|
||
任何标记。** 增删条目后重新编译,概述里的数字自己就变了。
|
||
|
||
### 全自动写法:`cvlist` 环境
|
||
|
||
这是最省事的方式。原来写 `\begin{itemize}`,现在改成 `\begin{cvlist}{类别}`,
|
||
其他一个字都不用动:
|
||
|
||
```latex
|
||
% 软著章节
|
||
\sectionTitle{软件著作权}{\faTv}
|
||
\begin{cvlist}{软著} % ← 只改这一行(原来是 itemize)
|
||
\item 某某系统. 2024SR9999901. 软著登字第 9999901 号.
|
||
\item 另一个系统. 2023SR9999902. 软著登字第 9999902 号.
|
||
\end{cvlist} % ← 和这一行(原来是 \end{itemize})
|
||
|
||
% 概述里
|
||
登记软件著作权 \cvnum{软著} 项 % → 自动印出「2」
|
||
```
|
||
|
||
**就这样。** 以后加一条只是多写一个 `\item ...`,数字自动从 2 变 3;
|
||
删一条自动变 1。不需要回来改概述,也不需要在条目里加任何标记。
|
||
|
||
实测过的行为:
|
||
|
||
| 操作 | 概述里的数字 |
|
||
|---|---|
|
||
| 原始 5 条 | 5 |
|
||
| 加 1 条 | **6**(自动) |
|
||
| 删 2 条(剩 3 条) | **3**(自动) |
|
||
| 还原 | 5 |
|
||
|
||
⚠️ `cvlist` 内部就是普通 `itemize`,**版面完全不变**(已逐行比对过,行数、
|
||
位置一字不差)。
|
||
|
||
⚠️ 不要在 `cvlist` 里再嵌套 `itemize` 写子项——子项的 `\item` 也会被算进去,
|
||
数字会偏大。需要子项就用普通 `itemize` + 手写 `\cvmark`。
|
||
|
||
### 半自动写法:`\cvmark` 与 `\cvtagcount`
|
||
|
||
有些章节一条要算进**两个**类别,`cvlist` 一次只能管一个类别,这时用逐条标记。
|
||
|
||
```latex
|
||
% 专利:一条既算「专利」又可能要算「第一发明人」
|
||
\item \textbf{张远航}, 李文博, 陈思远. 某某方法. ZL209999000001.9. 2024-05-14.
|
||
\cvmark{专利}\cvmark{第一发明人} % ← 加标记(不产生可见输出)
|
||
|
||
% 论文:收录类型本来就要显示,用 \cvtagcount 一步到位
|
||
\item \textbf{张远航}, 李文博. 某某论文. IEEE TGRS, 62, 1, (2024), 1--15.
|
||
DOI: 10.9999/TGRS.2024.0000001.\cvtagcount{SCI} % ← 显示 SCI 并计数
|
||
```
|
||
|
||
`\cvtagcount{SCI}` 等价于「印出加粗的 SCI」+「SCI 计数 +1」,所以**不要**写回
|
||
`\textbf{SCI}`——那样只显示不计数,概述会少算。
|
||
|
||
⚠️ 这种写法下,增删条目时**标记要跟着走**。删掉一条论文但留下 `\cvtagcount{SCI}`,
|
||
数字就会多算一个。这是它的代价;能用 `cvlist` 的章节就别用这种。
|
||
|
||
### 现有类别一览
|
||
|
||
| 类别 | 章节 | 写法 | 概述里的用法 |
|
||
|---|---|---|---|
|
||
| `SCI` `EI` `核心` | `section_04` 论文 | `\cvtagcount{}` 每条末尾 | `\cvnum*{SCI,EI,核心}` |
|
||
| `专利` `第一发明人` | `section_05` 专利 | `\cvmark{}` 每条末尾 | `\cvnum{专利}` / `\cvnum{第一发明人}` |
|
||
| `软著` | `section_06` 软著 | **`cvlist` 全自动** | `\cvnum{软著}` |
|
||
| `科研项目` `主持` `负责` | `section_07` 项目 | `\cvmark{}` 描述块内 | `\cvnum{主持}` / `\cvnum{负责}` |
|
||
| `转化` | `section_08` 成果转化 | **`cvlist` 全自动** | `\cvnum{转化}` |
|
||
| `教研` | `section_09` 教研项目 | **`cvlist` 全自动** | `\cvnum{教研}` |
|
||
|
||
### 概述里怎么取数
|
||
|
||
```latex
|
||
\cvnum{软著} % 单类:印出数字,没这个类别就印 0
|
||
\cvnum*{SCI,EI,核心} % 多类求和(注意是英文逗号)
|
||
```
|
||
|
||
**列几条就算几条**,不需要额外声明总数。空类别返回 `0` 而不是报错,所以可以先
|
||
写 `\cvnum{EI}`,等真有了 EI 论文再加 `\cvtagcount{EI}`,中间不会有编译问题。
|
||
|
||
### 加一个全新的类别
|
||
|
||
比如想统计「一区论文」,三步:
|
||
|
||
```latex
|
||
% ① 条目上标记(论文类用 cvtagcount,其他用 cvmark)
|
||
\item ...论文... \cvtagcount{一区}
|
||
|
||
% ② 概述里取数(不用任何注册,直接写)
|
||
其中一区论文 \cvnum{一区} 篇
|
||
|
||
% ③ 编译两遍
|
||
```
|
||
|
||
类别名是**随用随建**的,不需要预先声明。`\cvnum*{一区,SCI}` 这种求和也可以
|
||
直接用。
|
||
|
||
⚠️ 类别名不要含英文逗号(`,` 是 `\cvnum*` 的分隔符)、不要含 `@ % # \ { }`。
|
||
中文、英文、空格都可以。
|
||
|
||
### 三条必须知道的限制
|
||
|
||
1. **必须编译两遍**(`latexmk` 会自动跑够)。第一遍概述读到的是上一遍的统计,
|
||
首次编译会显示 `0`。日志末尾有 `CVSTATS:` 一行提示。
|
||
2. **`\jobname.cvnum` 是生成文件**,每次编译重写,已加进 `.gitignore`。
|
||
不要手改、不要提交。删掉它只会让数字从 0 重算一遍,下一遍即恢复。
|
||
3. **为什么不用 LaTeX 的 aux**:实测中文键经 aux 往返后 `\ifcsname` 全部匹配不上
|
||
(xeCJK 把汉字设为活动字符,键的 token 形态与写入时不一致;ASCII 键正常、
|
||
中文键失效)。所以改用独立的 `.cvnum` 文件,键原样保留。
|
||
|
||
### 为什么项目总经费仍是手填
|
||
|
||
`\experience` 的参数里没有经费字段,无法从条目自动求和。若真要做到自动,得给
|
||
`\experience` 增加一个经费参数(`{120万}` 之类),再由 `\cvnum` 累加。改动面较大,
|
||
超出本次范围,故保留手填 `1200 余万元`。
|
||
|
||
### ⚠️ 一个必须注意的语义变化
|
||
|
||
自动统计只数**你列出来的条目**,不数你没列的。示例简历原来写「论文 40 余篇、
|
||
专利 20 余项」,但正文只列了 9 篇代表作、9 项专利——改成自动统计后会变成
|
||
「论文 9 篇、专利 9 项」。
|
||
|
||
**这不是 bug,是两种口径**:
|
||
- 简历惯例是**只列代表作**,概述写总量(40 余篇)——此时总数不能从条目数出来
|
||
- 若你的正文就是全部成果,自动统计的数字才是真实总量
|
||
|
||
用之前先想清楚自己属于哪种。要保留「40 余篇」这种总量表述,就把那处数字改回
|
||
手写,只在真正列全的章节(软著、转化、教研这类)用 `\cvnum`。
|
||
|
||
## 写的时候容易踩的三个坑
|
||
|
||
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`,全部允许免费商用与再分发。 |