简历概述的成果数字改为自动统计(列几条算几条) #14
概述原来手写「论文 40 余篇、专利 20 余项」,每次增删条目都要回头改。
改为正文标记、概述取数:
\item ...论文... \cvtagcount{SCI} % 显示 SCI 并计数
\item ...软著... \cvmark{软著} % 只计数
概述:论文 \cvnum*{SCI,EI,核心} 篇(SCI \cvnum{SCI} 篇)
共注册 11 类:SCI/EI/核心/专利/第一发明人/软著/科研项目/主持/负责/转化/教研。
关键技术:不用 aux,改独立数据文件 \jobname.cvnum。
中文键经 aux 往返后 \ifcsname 全部失效(xeCJK 把汉字设为活动字符,
键的 token 形态不一致;ASCII 键正常);独立文件里中文键完全正常。
累加与显示分离(cvacc@ 每遍从 0 起 / cvnum@ 读自上一遍),
否则概述在正文之前会让上一遍的值被本遍叠加,数字翻倍。
踩坑:\cvmark 不能放 \experience 的关键词参数(会被 \foreach 拆开,
报 Misplaced \omit),必须放描述参数内;也不能放 longtable 单元格之外。
验证:0 error / 0 Overfull / 0 Underfull,3 页;加标记后版面与基线
逐行一致;连续 5 次编译数字稳定;增删条目后数字自动跟随。
⚠️ 口径变化:自动统计只数列出来的条目。示例原来写「40 余篇」但正文
只列 9 篇代表作,改成自动后变「9 篇」。README 已写明这两种口径的区别。
项目总经费仍手填(\experience 无经费字段)。
This commit is contained in:
+84
-1
@@ -24,9 +24,13 @@
|
||||
```bash
|
||||
cd 简历
|
||||
xelatex 简历.tex
|
||||
xelatex 简历.tex # 跑两遍:第一遍写 .aux,第二遍才能取到正确的页码与交叉引用
|
||||
xelatex 简历.tex # 必须跑两遍,原因有二:
|
||||
# ① 页码与交叉引用
|
||||
# ② 概述的成果数字读自 简历.cvnum,第一遍是空的
|
||||
```
|
||||
|
||||
用 `latexmk -xelatex 简历.tex` 也行,它自己会跑够遍数。
|
||||
|
||||
编译结果:3 页,日志零 error、零 Underfull、零 Overfull。嵌入字体只有 7 个,全部来自本仓库:
|
||||
|
||||
| 字体 | 用途 |
|
||||
@@ -194,6 +198,85 @@ Pagella / XCharter 宽 7~11%,会把全库的断行推着变。
|
||||
28mm ≈ 660px,约 3.6 倍冗余)。保留原图是为了将来放大不糊;真要瘦身,
|
||||
把 png 缩到 700px 宽即可。
|
||||
|
||||
## 概述里的成果数字自动统计
|
||||
|
||||
第一段概述通常要写「发表论文 N 篇、授权专利 M 项、转化 K 项……」。这些数字如果
|
||||
手写,每增删一条论文就得回头改概述,非常容易漏改。本模板让它们**自动从正文条目
|
||||
数出来**。
|
||||
|
||||
### 怎么用
|
||||
|
||||
两步:
|
||||
|
||||
```latex
|
||||
% ① 在每个条目末尾标类别(不产生任何可见输出)
|
||||
\item ...论文信息... \cvtagcount{SCI} % 显示 SCI,同时 SCI +1
|
||||
\item ...论文信息... \cvmark{软著} % 只计数,不显示
|
||||
|
||||
% ② 概述里取数
|
||||
发表论文 \cvnum*{SCI,EI,核心} 篇(SCI \cvnum{SCI} 篇、EI \cvnum{EI} 篇),
|
||||
登记软件著作权 \cvnum{软著} 项
|
||||
```
|
||||
|
||||
`\cvnum{A,B}`(带星号)是多类求和;`\cvnum{A}`(不带星号)是单类取数。
|
||||
**列几条就算几条**,不需要额外声明的总数。
|
||||
|
||||
空类别返回 `0` 而不是报错,所以可以先写 `\cvnum{EI}`,等真有了 EI 论文再加
|
||||
`\cvtagcount{EI}`,中间不会有编译问题。
|
||||
|
||||
### 两个命令的分工
|
||||
|
||||
| 命令 | 显示 | 计数 | 用在哪 |
|
||||
|---|---|---|---|
|
||||
| `\cvmark{类别}` | 不显示 | +1 | 软著、专利、项目、转化、教研这类本来就靠字段表达类别的条目 |
|
||||
| `\cvtagcount{类别}` | 显示(加粗,与正文同号) | +1 | 论文的 SCI/EI/核心——原本就用 `\textbf{SCI}` 缀在末尾,一步到位 |
|
||||
|
||||
`\cvtagcount` 就是为论文设计的:显示和计数合成一个动作,不会出现「改了显示忘了
|
||||
计数」的情况。
|
||||
|
||||
### 现有类别一览
|
||||
|
||||
| 类别 | 标记位置 | 概述里的用法 |
|
||||
|---|---|---|
|
||||
| `SCI` `EI` `核心` | `section_04` 各条目末尾 `\cvtagcount{}` | `\cvnum*{SCI,EI,核心}` |
|
||||
| `专利` `第一发明人` | `section_05` 各条目末尾 `\cvmark{}` | `\cvnum{专利}` / `\cvnum{第一发明人}` |
|
||||
| `软著` | `section_06` | `\cvnum{软著}` |
|
||||
| `科研项目` `主持` `负责` | `section_07` 描述块内 | `\cvnum{主持}` / `\cvnum{负责}` |
|
||||
| `转化` | `section_08` | `\cvnum{转化}` |
|
||||
| `教研` | `section_09` | `\cvnum{教研}` |
|
||||
|
||||
⚠️ 增删条目时**标记要跟着走**。删掉一条论文但留下 `\cvtagcount{SCI}`,数字就会
|
||||
多算一个——这是这套机制唯一的代价,但比每次回头数一遍要可靠得多。
|
||||
|
||||
### 三条必须知道的限制
|
||||
|
||||
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` 的参数顺序是「结束在前、开始在后」** —— 上游定义就是先印
|
||||
|
||||
Reference in New Issue
Block a user