下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-fgk3whmi--dypb.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-fgk3whmi/dypb。- 一键对 Word(.docx) 文档做保守小改式排版修复:以文档自身规范为基准,只改偏离的少数派(字体/字号/行距/缩进/首行空两格/断句/标题),补齐居中页码且断号续接、居中大标题、顺补连续序号(断层≥5处则保持原样)、刷新目录与引用域页码
- 所有修改处标蓝,并在页眉写入"
- 广告合作QQ67439330"
- 。本 skill 应当用于用户说"
- 一键排版修复"
- "
- …(完整说明见下方「阅读全文」)
阅读全文 (展开查看完整说明)
概述
一键排版修复
一、技能简介
本技能对 Word(.docx)文档执行一次全面的排版体检与微创修复,目标是让文档的排版规范、统一、无断号断句,同时绝不改动原文的任何一个字、不调整内容的结构与顺序。所有被修改过的部分一律以蓝色(#0000FF)标注,方便用户逐处审阅、按需在 Word 中撤销。修复完成后,在文档页眉统一写入广告文字「广告合作QQ67439330」。
核心策略:以文档自身规范为基准,只改偏离的少数派(保守小改)。例如正文多数段落是宋体小四,则只把个别楷体/仿宋段落统一回宋体小四,而不是强行套用外部模板。
v1.0.4 保守小改版说明:相比早期整篇"套基线"的做法,1.0.4 改为局部判定 + 保守阈值 + 主流判断,避免对已经自洽的文档做大量无谓改动:
- 局部众数:字体/字号以"段落自身"的众数为基准(而非全文档统一值),正文段落各自按自己的主流字体归一;
- 保守阈值:字号差 >1.0pt、行距差 >0.05、左缩进绝对值 >1.0pt、首行缩进缺口 >1.0pt 才动手,噪声级差异直接放过;
- 主流判断首行:仅当文档"绝大多数段落"本身有首行缩进时,才给缺首行的段落补 2 字符;若原文多数段落本就不缩进(如公文体),则不强行加首行;
- 目录/标题缺省值校正:样式跟随(None)的正文按 Normal 样式字体、行距按 1.0 计,避免把个别显式设置误判为"主流"而错改整篇;
- 封面保护修复:仅当文档存在分节符时才保护封面段;无分节符的整篇单节文档默认不保护(安全默认),不再误把整篇当成封面跳过。
自测结论:一份排版自洽的样本,除"大标题居中/页眉广告/页脚页码"三项结构性补充外,字体/字号/行距/缩进/首行/断句/序号/两端对齐改动均为 0;一份人工注入破排版的样本,仅修复被注入的离群点(字体、字号、行距、左缩进、首行补漏×6、断句、两端对齐、序号×3、序号空白×3),封面与一级标题版式完好保留。
一之一、原文比对安全闸(v1.0.5)
为避免"小改"仍偶发把原文件改得过多,v1.0.5 在修复完成后增加一道与原文比对的安全闸:修复前先对每个段落/run 拍下格式快照,全部修复(含序号/页脚/页眉/域)完成、落盘之前,逐段比对,发现大改动立即回退原值,并在报告中单列计数。
回退规则(阈值可在 scripts/typeset_fix.py 顶部常量调整):
- 对齐翻转:仅允许两种预期变换——大标题居中、含软换行正文两端对齐(且原文非居中);其余对齐方式变动一律回退原对齐。
- 左缩进:原文缩进 > 12pt(作者有意块缩进/引文)被引擎归零的,回退保留。
- 首行缩进:变动 > 40pt 的异常跳变回退(正常补齐 2 字符≈21pt 不受影响)。
- 字号:单 run 字号变动 > 6pt(设计性大字/小字)被强改的,回退原字号;原文跟随样式、引擎却强加显式字号的也回退。
- 封面双保险:封面段(分节符之前)若被任何格式改动,整体回退。
小偏差(常规统一:如 12pt→10.5pt、3pt 缩进归零、1.5→1.0 行距)不受影响,仍按保守逻辑正常修复。可用环境变量 DIFF_GUARD=0 整体关闭本安全闸。
报告新增字段:对齐大改动已纠正 / 左缩进大改动已纠正 / 首行缩进大改动已纠正 / 字号大改动已纠正 / 封面误改已纠正。
二、触发方式
用户说出以下任意一句即触发(也可直接把待修文档交给本技能处理):
- "一键排版修复"
- "排版修复"
- "统一排版格式"
- "整理一下格式"
三、执行流程(静默执行,无中间询问)
- 确认用户输入的 .docx 路径;若无路径则向用户索取。
- 运行随附脚本
scripts/typeset_fix.py,由脚本完成全部检查与修复并直接产出新文件:- 输出文件默认命名为
<原名>_排版修复.docx,与源文件同目录。
- 输出文件默认命名为
- 脚本运行结束后,读取其打印的 JSON 报告,按下方模板一次性输出给用户(不分步汇报)。
- 提示用户:目录与引用域已标记为"脏",在 Word 中按
Ctrl+A→F9即可刷新到实际页码(或打开时自动刷新)。
运行命令(自包含、可移植)
脚本依赖 python-docx + lxml。技能自带隔离环境 scripts/.venv,首次使用先安装依赖(自动建环境,不污染系统;需本机已装 Python 3.10+):
# Windows(PowerShell)
powershell -ExecutionPolicy Bypass -File scripts/install.ps1
# Linux / macOS / Git Bash
bash scripts/install.sh运行修复(脚本接受 输入.docx 与可选 输出.docx 两个参数,直接修复并写盘):
# Windows
scripts/.venv/Scripts/python.exe scripts/typeset_fix.py "<输入.docx>" ["<输出.docx>"]
# Linux / macOS
scripts/.venv/bin/python scripts/typeset_fix.py "<输入.docx>" ["<输出.docx>"]若
scripts/.venv不存在,说明依赖未装,先跑上面的 install 脚本即可。脚本本身不写死任何机器路径,可在任意装有 Python 3.10+ 的机器上运行。
四、修复项清单(脚本逐项执行)
| 项 | 修复动作 | 标注方式 |
|---|---|---|
| 正文字体与字号 | 以正文众数字体/字号为基准,统一少数派 run | 改动的 run 标蓝 |
| 行距 | 统一为正文众数行距(缺省 1.0 倍,样式跟随的段落按 1.0 计),差异 >0.05 才改 | 段落首 run 标蓝 |
| 左缩进对齐 | 正文左缩进归零(绝对值 >1.0pt 才动手),使所有段落对齐到版心左缘 | 段落首 run 标蓝 |
| 首行空两格 | 仅当文档主流段落本身有首行缩进时,才给缺口(<1.0pt)的段落补 2 字符(按正文字号估算) | 段落首 run 标蓝 |
| 页脚页码 | 无页码的页脚插入居中 PAGE 域;章节页码断号则去掉 restart、续接补齐 | 报告计数 |
| 各级标题 | 统一同级别标题的字号与字体(遇大标题居中),加粗 | 改动的 run 标蓝 |
| 大标题居中 | 一级标题(或最大字号级别)居中对齐 | 段落标蓝 |
| 断句排齐 | 去除段落内软换行 <w:br/>(被它切断的句子自动连回),正文两端对齐 | 段落首 run 标蓝 |
| 序号连续 | 序号断层 <5 处 → 顺补为连续序号;≥5 处 → 整体禁止改动、保持原样并告警 | 改动的 run 标蓝 |
| 目录/引用域 | 将所有域(TOC/PAGEREF/REF 等)标记为"脏",打开即刷新到实际正码页码;无 TOC 域但有"目录"标题时自动插入 TOC 域 | 报告计数 |
| 页眉广告 | 每节页眉写入居中文字「广告合作QQ67439330」(蓝色) | 该 run 标蓝 |
| 封面保护 | 以第一个分节符为界,其之前的正文段落不纳入任何段落级格式统一(字体/字号/行距/缩进/首行/对齐/断句/标题统一),避免破坏封面版式 | 报告计数 |
| 序号后空白 | 序号修复时,把序号标记后的多个空格/制表符/全角空格统一规范为一个空格 | 报告计数 |
五、硬性约束(红线)
- ❌ 严禁重排:不得调整任何段落/章节的先后顺序,不得删除、不得新增原文内容(仅可新增页眉广告文字与必要的页码/目录域)。
- ❌ 严禁改写文字:序号修复只替换段首的序号标记,正文其余文字一字不改。
- ❌ 禁止询问用户"是否继续",全程静默执行,只在最后输出一次报告。
- ✅ 含 REF/SEQ/PAGEREF 等引用域的段落:域本身不重编、不删,仅统一其外层字体/行距等格式。
- ✅ 所有被修改的部分必须蓝色可见。
六、输出报告模板(一次输出)
✅ 排版修复完成(<输出文件名>)
━━━━━━━━━━━━━━━━━━
• 正文字体统一:X 处
• 正文字号统一:X 处
• 行距统一:X 处
• 首行缩进补齐:X 处
• 正文两端对齐:X 处
• 断句(软换行)修复:X 处
• 标题大小风格统一:X 处
• 大标题居中:X 处
• 页脚页码插入:X 处
• 页码断号续接:X 处
• 序号修复:X 处
• 序号后空白规范化:X 处
• 目录/引用域刷新标记:X 处
• 目录域新建:X 处
• 页眉广告文字:X 处
• 封面保护段数:X 段
━━━━━━━━━━━━━━━━━━
⚠ 提示(如有):……
提示:请在 Word 中按 Ctrl+A → F9 刷新域,确认目录与引用页码。若序号检测到断层 ≥5 处,报告中务必出现:⚠ 序号断层达 X 处(≥5),已按规则保持原样,未改动任何序号。
七、已知边界(实现说明)
- "首行空两格"按正文字号估算 1 个全角字宽≈字号 pt,故 2 字符≈2×字号 pt;与 Word 原生"2 字符"在极端字号下可能有 1pt 级误差。
- 序号顺补仅针对段首的「阿拉伯数字 N.」或「中文数字 N、」单层简单列举;嵌套编号(如 1.1、1.2)、字母编号不处理。
- 中文序号顺补会把断层序列补成连续中文数字(如"十、附则"在断层<5时可能被改为"六、附则"),属按规则的连续化处理,用户应在 Word 中核对后接受/拒绝。
- 页脚若原来是手填的硬编码页码(非 PAGE 域)导致的"断号",脚本无法可靠识别,会在报告中提示用户人工核对。
- 封面保护以「分节符」为界:仅当文档用分节符把封面与正文分开时,封面段才被保护;若封面无分节符(整篇单节),则默认不保护(安全默认),可在封面末尾插入一个「下一页分节符」使其被自动保护;环境变量
COVER_PROTECT=0可整体关闭封面保护。 - 序号后空白规范化仅在序号修复范畴内生效(仅对识别为序号序列的段落),不影响普通正文段落内的空格。
- 仅支持 .docx;.doc 需先另存为 .docx。