| name | technical-resume-typesetting |
| description | 将已定稿的技术简历内容渲染为 ATS 安全、打印安全的 A4 PDF 版面。用于简历内容定稿之后的排版与渲染阶段(print-first HTML → headless Chrome PDF),负责页面几何、字体系统、结构映射、分页纪律与交付验收。不要用于简历内容的写作、改写或润色(内容工作使用 technical-resume-engineering)。 |
Technical Resume Typesetting
1. 定位与边界
- 输入:经
technical-resume-engineering 定稿的简历内容(Markdown 或等价结构)。
- 输出:可直接投递的 A4 PDF;HTML 是源文件,PDF 是渲染产物,同名同目录交付。
- 职责仅限呈现层:页面几何、字体、视觉层级、分页、ATS 物理约束、打印安全。
- 禁止修改内容:不改写、不润色、不增删事实、不重排信息优先级(那是内容层决策)。发现内容问题(超长 bullet、信息重复、密度不均)时记录并报告,由用户决定是否退回上游 Skill。
- 允许的呈现性转换(仅限):Markdown 结构映射为 HTML、日期右对齐、联系方式合并排列、标点两侧的排版空隙。文字本身逐字保留。
2. 继承的硬约束(来自 technical-resume-engineering §19)
视觉导航只允许:粗体、固定字段、数字、短链路、少量关键词。
禁止:技能进度条、雷达图、星级、花哨卡片、大面积图形、装饰图案、复杂双栏。
技术简历首先是信息系统,其次才是视觉设计。
本 Skill 补充判定标准:
- 色彩系统:1 个主点缀色(如
#0b5cff 或 #1F4E79),落在节标题分隔线、求职方向、角色行、bullet 标记、标签 chip 等结构化位置;可再加 1 个“凭证色”(如深绿 #0a7a3d)仅用于最高荣誉标记(如 WAIC 参会),每文档 ≤2 处。除此之外无第三种彩色。
- 颜色不承载唯一层级:去掉颜色后,字号 / 加粗 / 分隔线必须仍能独立成立层级(灰度安全);正文与次级文字始终保持墨色 / 灰色,不用彩色排正文。
- 标签 chip 允许但限量:仅作信息载体(项目类型、最高荣誉),实心小标签,每条目头 ≤2 个;禁止无信息含量的装饰性徽章(如把“211”做成徽章——写为普通文本)。
- 双栏仅当侧栏只放技能 / 语言 / 证书且宽度 ≤30%,或技能区使用 2 列网格(DOM 顺序必须等于阅读顺序);主体默认单栏。
3. 页面几何与密度预算
- A4(210×297mm)。页边距上下 14–16mm、左右 15–18mm,用
@page 设置——不要用容器 padding 充当页边距,否则第二页起边距错误。
- 页数:应届 / 初级 1 页;项目证据密集者 ≤2 页。
- 内容溢出时的决策顺序:
- 先报告并退回上游压缩内容(§18 Compression Rules);
- 再微调版式:字号 −0.5pt、行高 −0.05、段距收紧——不得突破 §4 下限;
- 禁止把页边距压到 12mm 以下或用双栏硬塞。
4. 字体系统
只允许两个字族:
- 正文:sans(
Microsoft YaHei / PingFang SC / Noto Sans SC)。
- 姓名与节标题(可选):serif(
Noto Serif SC / Source Han Serif SC / SimSun)建立编辑感。不用第三套字族。
字号阶梯(四级,print pt):
| 层级 | 大小 | 用途 |
|---|
| 姓名 | 18–22pt bold | 全文仅一次 |
| 节标题 | 11–12.5pt bold | 教育 / 技能 / 项目 / 荣誉 |
| 条目头 | 10–11pt bold | 项目名 / 学校 / 公司;右侧日期 9–9.5pt regular |
| 正文 | 9.5–10.5pt | 概述与 bullet;下限 9pt |
- 行高:CJK 正文 1.45–1.6;标题 1.2–1.3。
- 日期、电话、指标数字使用
font-variant-numeric: tabular-nums。
- 加粗预算:加粗只用于姓名、节标题、条目头,以及内容定稿中已有的固定字段 / 关键指标;不新增装饰性加粗。
- 中文不使用斜体(伪斜体失真);不使用下划线(与链接混淆)。
5. 结构映射
- 头部:姓名 + 联系方式(电话|邮箱|城市…)+ 求职方向;证件照可选,置于右上,宽 28–32mm,纯图片不承载文字信息。
- 节顺序与内容文档一致,不在排版层重排。
- 条目头 = 左:项目 / 学校名(bold)+ 可选标签 chip,右:日期(gray、tabular-nums、nowrap);其下角色行 9–9.5pt,可用主点缀色加粗。
- 节标题分隔线:1px 发丝线或 ≤2px 粗线(墨色或主点缀色),全文档统一一种;不用色块标题栏。
- bullet 标记可用主点缀色小圆点(装饰性,不承载信息)。
- 头部允许浅色中性底(白 → 浅灰渐变或纯色
#f4f6f9 级)收束身份区;禁止大面积彩色底。
6. 分页纪律
- 条目头与其首条 bullet 不可分离(
break-after: avoid 于条目头与角色行)。
- 节标题不可孤悬页尾(
break-after: avoid)。
- 长项目块允许在 bullet 之间分页;单条 bullet 内部不截断(
li { break-inside: avoid })。
- 页尾留白优于硬塞:宁可第二页较空,也不突破字号 / 行高下限。
- 渲染后逐页检查:无孤行节标题、无悬挂条目头、无文字溢出右边界。
7. ATS 与打印安全
细则见 references/ats-constraints.md。核心条款:
- 单栏流式 DOM,阅读顺序 = 视觉顺序;不用 CSS 改变内容顺序。
- 禁用:文本框 / 绝对定位承载正文、表格布局正文、图标字体代替文字(电话 / 邮箱图标)、图片承载文字。
- PDF 必须带文本层(headless Chrome 输出自带),交付前抽查文本可抽取。
- 灰度安全:正文颜色不浅于 #333,次级信息不浅于 #555;黑白打印完整可读。
- 文件名:
姓名_岗位方向_版本.pdf,无空格。
8. 渲染管线(本项目环境)
- 编写 print-first HTML:屏幕态仅作预览(灰底白纸),
@media print 移除全部屏幕装饰;@page 承担真实页边距。
- 渲染:
chrome --headless=new --no-pdf-header-footer --print-to-pdf=<out.pdf> file:///<path>.html
- 验证:页数、逐页目视、文本抽取抽查、文件体积合理。
9. 验收清单