返回技能总览
● 视觉 · 排版

Word 杂志化排版

"Word 文档杂志化排版技能。将已有 .docx 内容按杂志/报刊风格重新排版:自动判断内容类型、套用文艺/商务/精品杂志模板(配色抄自 gzh-design 设计系统)、封面页(深底+标题+金句)、H1大编号组合标题、指定金句拉引、数字品牌色强调、清单卡片、表格卡片化(含窄列等宽字体)、输出模板报告单、对话气泡(多行合并)、红绿判定卡、STEP 步骤进度条、标签组 chips、章节分隔线、结束符、分栏、首字下沉、图文混排(按栏宽自动缩放)、图注套样式、占位图组件、引文框、侧边栏、关键词下划线、页码、校验门禁。输出可直接打印或转 PDF 的杂志感 docx。"

触发条件

用户提到以下任一意图时调用:

边界与定位

参考样式映射

用户给出的四类参考图,本 SKILL 用不同模板/参数逼近:

参考图风格关键词本 SKILL 对应方案
英文报纸头版(红刊头 + 大图 + 多栏)新闻纸、强对比、红色强调business 预设 + 单/双栏 + 大标题 + 图片环绕
中文地产报纸(多文拼版 + 信息框)多文章混排、信息卡片、红头business 预设 + 多节分栏 + 侧边栏 box
现代网格杂志(青绿 + 图表 + 引文)模块化、数据图、强调色块business 预设 + 自定义强调色 + 引文框
软质书页杂志(暖色 + 装饰 + 侧栏)文艺、装饰边框、温和排版literary 预设 + 侧边栏 + 暖色背景

执行通道

使用 python-docx 程序化修改 .docx。分栏、首字下沉、图片环绕、段落底纹/边框等已封装进脚本,不用每次手写 OOXML。

依赖安装(必须隔离):

# 在隔离 venv 中安装,禁止全局 pip
& "C:\Users\DELL\.workbuddy\binaries\python\versions\3.13.12\python.exe" -m venv "C:\Users\DELL\.workbuddy\binaries\python\envs\default"
& "C:\Users\DELL\.workbuddy\binaries\python\envs\default\Scripts\python.exe" -m pip install python-docx

用法流程

   & "C:\Users\DELL\.workbuddy\binaries\python\envs\default\Scripts\python.exe" `
     "C:\Users\DELL\.workbuddy\skills\hsf-word-magazine\scripts\magazine_typeset.py" `
     -i "C:\path\input.docx" `
     -s "C:\Users\DELL\.workbuddy\skills\hsf-word-magazine\assets\templates\literary_style.json" `
     -o "C:\path\output.docx"

内容类型判断规则(脚本内自动执行)

脚本按「字数 + 图片数」自动选择版式:

类型字数图片数版式策略
封面/短文< 1000任意单栏;标题超大;图片通栏或半栏
中长文1000–3000≥ 0双栏;标题通栏;图片可跨栏
超长文≥ 3000任意双栏 + 侧边栏,或三栏;收紧留白

若用户明确指定版式(如"双栏"),优先用用户指定。

配色设计系统(抄自 gzh-design,勿自造)

两套预设的配色严格套用 gzh-design 已验证的设计系统(来源:~/.workbuddy/skills/gzh-design/references/theme-red-white.md、theme-olive-journal.md)。新增风格时照这套配对逻辑抄,不要自己琢磨色值。

五层色系统

每套风格定义五层色 + 墨色/正文色,全部写进 JSON colors(命名色键,经 resolve_color 解析):

色键角色business(红白编辑)literary(橄榄手记调)
primary主色:只做锚点(装饰线/竖条/下划线)DC2626 正红ED7B2F 强调橙
primary_dark主色深:金句块文字991B1B 暗红同 ink
primary_bg主色浅底:引文框/侧栏底纹FEF2F2 极淡红EEEFE9 浅橄榄灰
marker关键词下划线色FECACA 淡粉ED7B2F 橙
ink标题色(近黑)1C191723251D 墨黑
body正文色(深灰)3741514D4F46 暖灰
secondary图注/次要文字9CA3AF65675E
line分隔线E5E7EBBFC1B7 橄榄灰

标题/正文配对铁律

样式级边框(脚本能力)

JSON 的 styles.* 支持 border_bottom/top/left_color + _width_pt(样式级,如 Title 红线);JSON 未声明边框时脚本会清除 Word 模板默认边框(如 Title 自带蓝线)。

两套模板参数 → 五套预设

预设用途关键差异
literary_style.json文艺/书籍/柔和橄榄手记配色、双栏、首字下沉、占位图
literary_essay_style.json纯文字随笔同上,无占位图、引文降频
premium_essay_style.json精品杂志长文深蓝金、封面页、大编号、指定金句、双栏
premium_doc_style.json结构化产品文档深蓝金单栏(表格友好)、v0.6.0 全组件(判定卡/进度条/标签组/分隔线/窄列)
business_style.json商务/报纸/硬朗红白编辑配色、三栏

文艺风(literary,橄榄手记调)

项目参数
栏宽约 10 字符(≈ 10.7 cm / 双栏)
页边距上下 2 cm,左右 2.5 cm
装饰线H1 底部分隔线 1pt 橄榄灰;H2 左竖条 3pt 强调橙
标题字体宋体 / 思源宋体(Mac 回退:Songti SC / STSong)
正文字体仿宋(Mac 回退:STFangsong / Fangsong SC)
标题/正文色墨黑 #23251D / 暖灰 #4D4F46
强调色橙 #ED7B2F(只做 H2 竖条、下划线、金句边框);底纹浅橄榄 #EEEFE9
图注中灰 #65675E

商务风(business,红白编辑)

项目参数
栏宽约 15 字符(≈ 5.3 cm / 三栏)
页边距上下 2 cm,左右 2 cm
装饰线Title/H1 底部红线 3pt;H2 左竖条 3pt 红
标题字体黑体 / 思源黑体(Mac 回退:Heiti SC / PingFang SC)
正文字体微软雅黑 / 苹方
标题/正文色近黑 #1C1917 / 深灰 #374151
强调色正红 #DC2626(只做装饰线、竖条、下划线、金句边框);金句字暗红 #991B1B
图注中灰 #9CA3AF

精确字号、段距、行距见对应 JSON 预设文件。

脚本 CLI 参数

magazine_typeset.py
  -i, --input      源 docx 路径(必填)
  -s, --style      风格 JSON 路径(必填)
  -o, --output     输出 docx 路径(必填)
  --layout         强制版式:short / medium / long
  --drop-cap       首字下沉行数,默认 3,0 表示关闭
  --pull-quotes    是否插入引文框,默认 true
  --page-numbers   是否加页码,默认 true
  --strict         校验 ERROR>0 时退出码为 1(CI/批量用)

风格 JSON 字段说明

{
  "name": "literary",
  "page": { "width_cm": 21.0, "height_cm": 29.7,
            "margin_top_cm": 2.0, "margin_bottom_cm": 2.0,
            "margin_left_cm": 2.5, "margin_right_cm": 2.5 },
  "columns": { "short": 1, "medium": 2, "long": 2, "long_sidebar": true },
  "colors": { "ink": "23251D", "body": "4D4F46", "secondary": "65675E",
              "primary": "ED7B2F", "primary_bg": "EEEFE9",
              "marker": "ED7B2F", "line": "BFC1B7" },
  "fonts": { "heading": "宋体", "heading_fallback": ["SimSun", "STSong", "Songti SC"],
             "body": "仿宋", "body_fallback": ["FangSong", "STFangsong", "Fangsong SC"] },
  "styles": {
…(完整代码见技能源码)

字段说明:

v0.3.0 新增配置(杂志感增强层)

{
  "cover_page": {              // 封面页:1x1表格画布铺满首页,正文从第2页起
    "enabled": true,
    "title": "2022 赚钱建议",   // 超粗大标题
    "subtitle": "生财有术 × 逆熵增者",  // 细体副标题
    "quote": "赚钱是认知与人品的变现",   // 底部金句(衬线反差)
    "quote_author": "",
    "background": "1A365D",    // 封面底色(支持 colors key 或 HEX)
    "title_color": "FFFFFF", "subtitle_color": "A0AEC0",
    "quote_color": "F6E05E", "accent_line": "B7791F",  // 顶部装饰线颜色
    "title_size_pt": 44, "subtitle_size_pt": 13, "quote_size_pt": 15
  },
…(完整代码见技能源码)

v0.6.0 新增配置(结构化文档组件层)

{
  "tag_group": {               // 标签组 chips:Tag Group 样式段("标签1|标签2|…")
    "enabled": true,
    "label": "六模块",          // 金色小标签前缀
    "label_color": "B7791F", "tag_color": "1A365D", "tag_bg": "EDF2F7"
  },
  "checklist_cards": {         // 红绿判定卡:Checklist Item 样式段("✗/✓ …")
    "enabled": true,
    "fail_mark": "✗", "fail_color": "C53030", "fail_bg": "FFF5F5",
    "pass_mark": "✓", "pass_color": "2F855A", "pass_bg": "F0FFF4"
  },
  "flow_steps": {              // 步骤进度条:Flow Step 段("STEP n|标题")+ Flow End 收尾
…(完整代码见技能源码)

内容层协作模式(v0.6.0 固化):复杂版式锚点用两段式——① 转换脚本(一次性,随文档写在桌面)在重建内容时给特殊段落打样式名锚点(Tag Group / Checklist Item / Flow Step / Flow End / Section Divider),空文档需先 add_style 创建这些样式;② 排版层 magazine_typeset.py 按样式名识别,统一写入 OOXML 直接格式。转换脚本不含任何格式逻辑,排版层不含任何内容判断。

执行顺序注意:designated_quotes 在通用 pull_quotes 之前跑;要完全掌控引文位置时把 pull_quotes.enabled 设为 false。cover_page 在主流程最后插入(元素移到文档最前),不影响前面所有段落索引;封面页自动启用"首页不同"隐藏页码。

核心操作封装

脚本内部已封装:

含图 Word 的自动处理(重点)

用户给一份已有图片的 .docx,脚本会自动:

局限:图片位置仍留在源文档原段落处(不会智能重排到栏顶/跨栏)。无图时可用下方占位图组件补出版式骨架。

QA 清单(脚本自动输出)

输出 *_qa.json,包含:

常见问题

Q:Word 杂志化排版是做什么的?

"Word 文档杂志化排版技能。将已有 .docx 内容按杂志/报刊风格重新排版:自动判断内容类型、套用文艺/商务/精品杂志模板(配色抄自 gzhdesign 设计系统)、封面页(深底+标题+金句)、H1大编号组合标题

Q:Word 杂志化排版适合什么场景使用?

用户提到以下任一意图时调用: "Word 杂志化排版" "把文档排成杂志/报刊风格" "分栏 / 首字下沉 / 图文混排" "Word 排版美化,杂志感" "报纸风格 / 杂志风格 / 期刊风格"

Q:使用Word 杂志化排版最终能得到什么?

输出 qajson,包含: [ ] 字数与图片数统计 [ ] 自动判定的版式类型 [ ] 应用的风格预设名 [ ] 分栏数是否生效 [ ] 首字下沉是否生效 [ ] 图片环绕方式统计(resized / converte