news 2026/9/13 23:53:58

Resume Matcher 的简历模板排版控制项(边距、行高、字号)怎么配置?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Resume Matcher 的简历模板排版控制项(边距、行高、字号)怎么配置?

Resume Matcher 的简历模板排版控制项(边距、行高、字号)怎么配置?

【免费下载链接】Resume-MatcherThe #1 AI Harness for Building Resumes, PDFs, Cover Letters & more, locally with 100+ LLMs support.项目地址: https://gitcode.com/GitHub_Trending/re/Resume-Matcher

Resume Matcher 内置 7 套简历模板,每套模板的版式都受同一组排版控制项驱动:页面边距、间距、行高、字号、字体族,外加紧凑模式等开关。这些控制项在 Builder 页面的 Formatting Controls 面板里直接调整,调整后的设置会同时作用于页面实时预览和最终导出的 PDF——设置结构定义在 template-settings.ts,UI 面板实现在 formatting-controls.tsx。

控制项在哪:进入 Builder 页面的 Formatting Controls 面板

按 SETUP.md 把前后端跑起来(前端npm install && npm run dev,浏览器打开http://localhost:3000),进入 Builder 页面新建或打开一份简历后,页面里的Formatting Controls面板(可折叠)就是全部排版入口。面板从上到下依次是:

  1. 模板选择:7 个缩略图,对应swiss-singleswiss-two-columnmodernmodern-two-columnlatexcleanvivid(完整对照见 template-system.md)。
  2. 强调色:仅当模板为modernmodern-two-columnvivid时显示,可选blue/green/orange/red
  3. 页面尺寸A4(210 × 297 mm)或 US Letter(8.5 × 11 in)。
  4. 边距:上、下、左、右四条独立滑杆。
  5. 间距:节间距、条目间距、行高三组 1–5 档选择器。
  6. 字号:基础字号、标题倍率两组 1–5 档选择器,加标题/正文两个字体族切换组。
  7. 选项:紧凑模式、联系信息图标两个开关。
  8. Effective Output 汇总 + Reset:显示当前生效的具体值,一键重置为默认。

每次修改都会通过 resume-builder.tsx 里的settingsToCssVars()转成 CSS 自定义属性(--margin-top--line-height--font-size-base等)并立即刷新预览;同一份设置会随 PDF 导出链路(打印页 print/resumes/[id]/page.tsx)原样带进 PDF。设置还会写入浏览器 localStorage:再次进入 Builder 时自动恢复上次的排版配置;要回到初始状态,用面板底部的Reset按钮(重置为DEFAULT_TEMPLATE_SETTINGS)。

边距(Margins)

四个方向各自独立调节,单位是 mm:

控制项范围默认值对应 CSS 变量
上边距margins.top5–25mm10mm--margin-top
下边距margins.bottom5–25mm10mm--margin-bottom
左边距margins.left5–25mm10mm--margin-left
右边距margins.right5–25mm10mm--margin-right

UI 里每个方向是一根min=5max=25的滑杆,旁边的数字即当前 mm 值。默认值以 template-settings.ts 中的DEFAULT_TEMPLATE_SETTINGS为准(四边各 10mm);注意 resume-templates.md 的文档表格写的是 8mm,两处不一致,实际操作以前者代码值为准。

边距在 _base.module.css 中被用作简历容器的内边距(padding: var(--margin-top) var(--margin-right) ...),即它改变的是内容区四周的留白,而不是纸张尺寸。

间距与行高

间距三项共用 1–5 档(SpacingLevel),档位到具体值的映射定义在 template-settings.ts:

控制项档位范围默认档1 / 2 / 3 / 4 / 5 对应值CSS 变量
节间距spacing.section1–536px / 10px / 16px / 20px / 24px--section-gap
条目间距spacing.item1–522px / 4px / 8px / 12px / 16px--item-gap
行高spacing.lineHeight1–531.15 / 1.25 / 1.35 / 1.45 / 1.55--line-height
  • 节间距控制各大节(Summary、Experience 等)之间的空隙,作用在.resume-sectionmargin-bottom上。
  • 条目间距控制同一节内条目之间的空隙,作用在.resume-items.resume-stack等容器的gap上。
  • 行高作用在.resume-body整体(line-height: var(--line-height)),同时影响所有正文文本。

UI 上这三项都是 1–5 的按钮组,选中档为蓝色高亮,改动立即反映在预览中。

字号与字体族

字号同样按 1–5 档控制,外加两个字体族切换组:

控制项档位范围默认档1 / 2 / 3 / 4 / 5 对应值CSS 变量
基础字号fontSize.base1–5311px / 12px / 14px / 15px / 16px--font-size-base
标题倍率fontSize.headerScale1–531.5× / 1.75× / 2× / 2.25× / 2.5×--header-scale
  • 基础字号是全局文本基准,作用在.resume-bodyfont-size上;姓名使用calc(var(--font-size-base) * var(--header-scale)),节标题则用稍小的独立倍率--section-header-scale(同一档位下 1.0–1.4×,默认 1.2×)。
  • 副标题、日期等次级文本都是基于基础字号的固定比例(如.resume-item-subtitle为 0.95×、.resume-date为 0.75×,见 _base.module.css),所以调基础字号会整体缩放全文,而不是只动某一块。

字体族两项各提供serif/sans-serif/mono三个按钮:

控制项取值默认实际字体栈(节选)
标题字体fontSize.headerFontserif / sans-serif / monoserifui-serif, Georgia, Cambria, "Times New Roman", Times, serif
正文字体fontSize.bodyFontserif / sans-serif / monosans-serifui-sans-serif, system-ui, sans-serif, ...

标题字体栈完整列表在 template-settings.ts 的HEADER_FONT_MAP/BODY_FONT_MAP中。

两个与字体相关的行为需要注意:

  • latexclean是单字族模板:选中它们时,formatting-controls.tsx 的applyTemplatePreset会自动把标题/正文都预设为 serif(latex)或 sans-serif(clean),之后两个字体族切换组仍然可以手动改。
  • 未列入预设的模板(swiss、modern 系列、vivid)切换时保留你当前的字体设置。

紧凑模式:只压间距,不动边距

选项区第一个开关Compact Mode对应compactMode:开启后节间距和条目间距各乘 0.6 倍(COMPACT_MULTIPLIER = 0.6),行高只乘 0.92 倍(COMPACT_LINE_HEIGHT_MULTIPLIER = 0.92,template-settings.ts 注释说明这样避免文字重叠)。边距不受影响,保持你设置的 mm 值。

文档 resume-templates.md 把紧凑模式描述为 "0.6x spacing multiplier (spacing only; margins unchanged)",其中 "spacing only" 指的是边距不参与缩放,行高仍会按 0.92 倍收缩——以代码中的两个乘数为准。

确认结果:Effective Output 汇总与 PDF 校验

Formatting Controls 面板底部有一个Effective Output区块,它直接读出当前设置换算后的生效值:

  • 四边边距(mm,与滑杆一致,紧凑模式不改变它);
  • 节间距 / 条目间距(rem,已乘紧凑系数,如默认档 3 显示1rem、紧凑模式下显示0.6rem);
  • 行高(乘 0.92 系数后的实际值,如默认 1.35、紧凑下 1.242);
  • 基础字号(px)、标题倍率(×)、标题/正文字体族名称。

调完一组参数后先看这里:如果汇总值和你预期的一致,说明设置已被正确换算成 CSS 变量。开启紧凑模式时该区块还会多出一行提示(compactHint),提醒你间距已被缩放。

导出 PDF 时,同样的TemplateSettings会走打印链路:resumes.py 中的打印接口会把templatepageSize、四边边距(marginTop等)、sectionSpacingitemSpacinglineHeightfontSizeheaderScaleheaderFontbodyFontcompactModeshowContactIconsaccentColor拼进 URL,跳转前端的打印页 print/resumes/[id]/page.tsx 解析这些参数并渲染。该页对每个参数都有范围钳制和默认回退(见该文件的parseMargin/parseSpacingLevel/parseTemplate等函数):

  • 边距越出 5–25 会被钳回范围内;
  • 间距/字号档位越出 1–5 回落到默认档;
  • 模板名不在 7 个允许值内回落为swiss-single,页面尺寸非A4/LETTER回落为A4

所以浏览器端预览里核对过的版式,在导出的 PDF 里是同一套数值;若手工改动打印 URL,超范围的值不会报错,而是被静默修正为上述默认值。

可选分支:直接改打印 URL 调试单组参数

Builder 导出走的是应用内下载(downloadResumePdf(resumeId, templateSettings, ...),见 resume-builder.tsx),不需要手拼 URL。但打印页本身就是一个标准的 Next.js 路由,可以直接在浏览器打开来验证某一组排版值在 PDF 渲染下的效果:

http://localhost:3000/print/resumes/<resume_id>?template=swiss-single&pageSize=A4&marginTop=10&marginBottom=10&marginLeft=10&marginRight=10&sectionSpacing=3&itemSpacing=2&lineHeight=3&fontSize=3&headerScale=3&headerFont=serif&bodyFont=sans-serif&compactMode=false&showContactIcons=false&accentColor=blue

其中<resume_id>替换为你要渲染的简历 id,其余参数按上文取值范围填。渲染成功后浏览器即可打印为 PDF(@media print样式在 _base.module.css 里已处理分页避免条目跨页断开)。这是调试路径,日常使用仍建议以 Builder 面板为准,因为面板会做即时预览并持久化设置。

边界与限制

  • 排版控制项作用于模板选择之外的所有版式细节;模板本身的列结构(单栏、65/35 双栏等)由模板决定,不在边距/行高/字号控制范围内。
  • 强调色只对modernmodern-two-columnvivid生效(代码里ACCENT_COLOR_MAP的颜色映射与 UI 可见性判断一致),其余模板选了也不显示该区块。
  • 紧凑模式不改边距;行高收缩幅度(0.92)比间距(0.6)小,代码注释的原因是为避免文字重叠。
  • 设置持久化在浏览器 localStorage,不是后端数据库:换浏览器或清缓存后,Builder 会回到DEFAULT_TEMPLATE_SETTINGS,需要重新调整。
  • 页面尺寸只有 A4 与 US Letter 两档(PAGE_SIZE_INFO:210 × 297 mm / 8.5 × 11 in),边距按 mm 标注,不随纸张尺寸换算。

改完排版后的下一步就是导出:Builder 页的下载按钮会把当前TemplateSettings一并传给 PDF 生成接口,打印页按同一套参数渲染出最终文件。

【免费下载链接】Resume-MatcherThe #1 AI Harness for Building Resumes, PDFs, Cover Letters & more, locally with 100+ LLMs support.项目地址: https://gitcode.com/GitHub_Trending/re/Resume-Matcher

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 23:51:37

扩散模型教程(Diffusion model)

1.写在前面 扩散模型是一类重要的深度生成模型&#xff0e;它的基本思想不是一步生成一个复杂样本&#xff0c;而是先定义一个固定的前向随机过程&#xff0c;把真实样本逐步扰动为近似高斯噪声&#xff1b;再学习一个反向过程&#xff0c;从噪声一步步恢复数据&#xf…

作者头像 李华
网站建设 2026/9/13 23:50:51

2026年高教社杯全国大学生数学建模竞赛A题药材的烘干问题-完整版Word论文,完整版Matlab代码,可直接运行和复制

A题 药材的烘干问题干燥是决定中药材成品品质的关键工序之一&#xff0c;其中热风烘干是一种常见的干燥方式。该方式主要包括预热平衡和恒温干燥两个阶段&#xff0c;通过调控烘房温湿环境&#xff0c;完成药材的干燥。在中药材烘干过程中&#xff0c;工艺参数选取不当容易导致…

作者头像 李华
网站建设 2026/9/13 23:50:44

工业HMI数据架构设计:IEC标准与实践指南

1. 工业HMI数据架构设计概述在工业自动化领域&#xff0c;人机界面(HMI)作为操作人员与控制系统交互的关键纽带&#xff0c;其数据架构设计直接影响着整个生产系统的可靠性和可维护性。一个设计良好的HMI数据架构能够显著提升操作效率、降低维护成本&#xff0c;同时确保系统符…

作者头像 李华
网站建设 2026/9/13 23:44:52

HarmonyOS 跨设备互通实战:平板点一下,手机镜头帮你拍照

本文主线落在 HarmonyOS 6.1.0(23) 的调用策略扩展&#xff0c;并顺带讲清算 6.0.0(20) 新增的视频选择器。文中的 API 名称、枚举取值与版本号来自华为官方文档&#xff1b;结构、代码示例、调用方向矩阵与自检清单为本人整理编写&#xff0c;未在真机逐行验证&#xff0c;涉及…

作者头像 李华