W

Word 报告自动排版

作者:鹿Sir办公效率v1

一键规范 Word 报告排版:页面设置、字体字号、标题层级、行距段距、页码页眉、目录、三线表、图表标题、封面附件、署名日期,全部自动刷成标准格式;并修复 AI 写作中最隐蔽的半角标点冒充全角问题,严格执行中文标点国标 GB/T 15834-2011。三种模式:自动排版(一键刷格式+标点)、排版审查(只出问题清单不改文件)、新建报告(从零按标准生成)。适用于咨询报告、国企央企报告、规划报告、可研报告、汇报材料等正式 Word 文档。当用户提到排版、Word 排版、格式统一、刷格式、公文排版、三线表、页眉页码、半角标点、中文标点检查等需求,或上传 .docx 要求格式化、排版、格式检查时触发。触发词:Word 排版、报告格式、中文标点、三线表、公文格式。

下载量
363
点赞
88
价格
免费

技能文档

---
name: moways-doc
title: Word 报告自动排版
category: 办公效率
description: 一键规范 Word 报告排版:页面设置、字体字号、标题层级、行距段距、页码页眉、目录、三线表、图表标题、封面附件、署名日期,全部自动刷成标准格式;并修复 AI 写作中最隐蔽的半角标点冒充全角问题,严格执行中文标点国标 GB/T 15834-2011。三种模式:自动排版(一键刷格式+标点)、排版审查(只出问题清单不改文件)、新建报告(从零按标准生成)。适用于咨询报告、国企央企报告、规划报告、可研报告、汇报材料等正式 Word 文档。当用户提到排版、Word 排版、格式统一、刷格式、公文排版、三线表、页眉页码、半角标点、中文标点检查等需求,或上传 .docx 要求格式化、排版、格式检查时触发。触发词:Word 排版、报告格式、中文标点、三线表、公文格式。
---

# Word 报告自动排版技能

依据《中文 Word 报告行文排版标准 V2.6》+ 国标《GB/T 15834—2011 标点符号用法》。

> **前置依赖**: 使用本技能前,需确保已安装 python-docx 和 lxml:
> ```bash
> pip install python-docx lxml
> ```
> 本技能中的脚本位于 `scripts/` 目录下,引用参考文档位于 `references/` 目录下。

---

## 强规则(一票否决,不达标不得交付)

**标点符号必须符合 GB/T 15834—2011 国标**。AI 生成的中文 Word 文档中最常见、亦最难凭肉眼察觉的错误,即"形似中文实为半角"的标点。此项为所有排版交付前**第一项必须扫描**的硬性指标。

### 三大判定原则

1. **纯中文上下文里,所有标点必须全角。**
2. **判断方法**:标点前后两侧任一为中文字符,则该标点必须全角。
3. **白名单**:URL、邮箱、文件路径、代码、版本号、千分位逗号、小数点、化学式 → 保留半角。

### 必扫的十类错误(必须全部为零)

| 错误模式 | 正确写法 | audit 编号 |
|---|---|---|
| `公司,跨境电商,物流.` | `公司、跨境电商、物流。` | P1, P2 |
| `"做强做优"` (ASCII 直引号) | `"做强做优"` (弯引号) | P7 |
| `年均增长(CAGR)` (半角括号) | `年均增长(CAGR)` | P9 |
| `<公司法>` (尖括号冒充书名号) | `《公司法》` | P10 |
| `供应链能力——企业的核心竞争力` (双连字符) | `供应链能力——企业的核心竞争力` | P11 |
| `供应链能力——企业的核心竞争力` (单 EM dash) | `供应链能力——企业的核心竞争力` | P12 |
| `物流仓储...` (三点) | `物流仓储……` | P13 |
| `年增长 15-30%` | `年增长 15%~30%` | P15, P20 |
| `《公司法》、《证券法》` (书名号间顿号) | `《公司法》《证券法》` | P17 |
| `1、推动产业链协同` (三级标题用顿号) | `1.推动产业链协同` | P19 |

完整规则、对照表、自动检查正则、白名单参见 [`references/punctuation_GB_T_15834-2011.md`](references/punctuation_GB_T_15834-2011.md)。**执行任何排版任务之前,须先阅读该参考文档。**

### 自动修复策略

- `format_word.py` **默认启用** `fix_chinese_punctuation`。运行后自动修正绝对安全的半角→全角问题。
- 存在歧义的修正(如单个 EM dash、句中半角句号或为版本号片段)仅在 `audit_word.py` 报告中列出,交由人工研判。
- 如需关闭自动修正:`python format_word.py input.docx --no-fix-punctuation`

---

## 技能工作流(三种工作模式)

根据用户需求选择合适的模式:

### 步骤1:自动排版(最常用)

用户已有一份Word文档,需要按排版标准统一格式。

**执行步骤:**

1. **先阅读 `references/punctuation_GB_T_15834-2011.md`**——充分掌握标点规则,方能准确解读 audit 报告
2. 确认用户文件路径,使用 python-docx 读取文件基本信息(页数、段落数、当前格式)
3. 询问用户关键参数(若无法从文档自动推断):
   - 是否有封面页?
   - 是否需要目录?
   - 页眉左侧文字(报告名称)和右侧文字(编制单位)?
   - 提交对象是国企/政府还是民企?(影响严格程度)
4. 执行自动排版脚本(默认修正标点):
   ```bash
   python scripts/format_word.py input.docx output.docx \
     --cover --toc --page-num-style dash \
     --header-left "报告名称" --header-right "编制单位"
   ```
5. 执行审查脚本确认是否仍有遗漏,**重点关注 P1–P20 标点项**:
   ```bash
   python scripts/audit_word.py output.docx --strict
   ```
6. 依据审查结果,使用 python-docx 手动修复脚本无法自动处理的问题(尤其是 audit 标记为 INFO 但需人工研判的标点项)
7. 将最终文件交付用户

### 步骤2:排版审查

用户希望检验现有文档是否符合本排版标准,但不一定执行自动修改。

**执行步骤:**

1. 执行审查脚本:
   ```bash
   python scripts/audit_word.py input.docx --strict -o report.json
   ```
2. 将审查结果整理为结构化问题清单,按严重程度排序
3. 向用户呈现清单,说明各问题的位置、成因及修改建议
4. **标点项须分级处理**:ERROR 级(中文上下文半角标点、尖括号冒充书名号等)必须全部清零;WARNING 级交由用户研判;INFO 级仅作提示
5. 若用户需要自动修复,切换至模式一

### 步骤3:新建报告

从零创建一份符合排版标准的Word报告。

**执行步骤:**

1. 使用 python-docx 创建新文档
2. **撰写过程中主动按 GB/T 15834 采用全角标点**——此为源头治理,较事后批量替换更为可靠
3. 依据下文"排版标准速查表"中的所有规则设置格式
4. 执行审查脚本,验证格式与标点的合规性

---

## 排版标准速查表

以下是V2.6标准的完整规则,按类别组织。脚本中的常量与这些值一一对应。

### 一、页面设置

| 项目 | 标准值 | 说明 |
|------|--------|------|
| 纸张 | A4 (210mm × 297mm) | 纵向 |
| 天头(上边距) | 37mm ± 1mm | |
| 订口(左边距) | 28mm ± 1mm | |
| 版心尺寸 | 156mm × 225mm | 由此推算右边距26mm、下边距35mm |

### 二、字体字号

| 元素 | 字体 | 字号 | 加粗 | 说明 |
|------|------|------|------|------|
| **封面标题** | 方正小标宋简体(备选黑体) | 一号(26pt) | 是 | |
| **封面说明** | 楷体 | 四号(14pt) | 否 | 括号内说明文字 |
| **封面落款** | 楷体 | 四号(14pt) | 否 | 编制单位、日期 |
| **全文大标题** | 小标宋(备选黑体) | 二号(22pt) | | 无封面时第一页顶端 |
| **一级标题** | 黑体 | 与正文一致(小四12pt) | 是 | 首行缩进2字符;字体黑色;大纲级别0(v2.7.3) |
| **二级标题** | 楷体 | 与正文一致(小四12pt) | 是 | 首行缩进2字符;字体黑色;大纲级别1(v2.7.3) |
| **三四级标题** | 仿宋 | 与正文一致(小四12pt) | 否 | "1.""(1)"…… |
| **附件标题** | 黑体 | 与正文一致(小四12pt) | 是 | 顶格(不缩进);另起页;大纲级别0(v2.7.3) |
| **正文** | 仿宋(中文)/ Times New Roman(英文数字) | 小四(12pt) | 否 | |
| **目录"目录"二字** | 黑体 | 二号(22pt) | 是 | |
| **目录一级** | 黑体 | 四号(14pt) | 是 | 行距1.5倍,段后6磅 |
| **目录二级** | 楷体 | 小四(12pt) | 是 | 行距1.5倍 |
| **目录三级** | 黑体 | 五号(10.5pt) | 否 | 行距1.25倍 |
| **页眉左侧** | 楷体 | 五号(10.5pt) | 是 | 报告名称 |
| **页眉右侧** | 黑体 | 小五(9pt) | 否 | 编制单位 |
| **页码** | 宋体 | 五号(10.5pt) | 否 | 半角阿拉伯数字 |
| **表格标题行** | 楷体(_GB2312) | 小五(9pt) | 是 | |
| **表格数据行** | 宋体 | 小五(9pt) | 否 | |
| **表标题** | 黑体 | 小四(12pt) | 是 | 表上方,如"表3 XXX" |
| **图标题** | 楷体 | 小四(12pt) | 否 | 图下方,如"图3 XXX" |

### 三、行距与段距

| 项目 | 值 |
|------|-----|
| 正文行距 | 1.5倍 |
| 段前间距 | 0 |
| 段后间距 | 0 |
| 首行缩进 | 2个字符(禁止用空格占位) |

### 四、标题层级序号

```
第一层: 一、  二、  三、 ……
第二层: (一)(二)(三)……
第三层: 1.   2.   3.  ……  (注意是下角点,不是顿号!)
第四层: (1)(2)(3)……
第五层: ①   ②   ③  ……
第六层: A.   B.   C.  ……
第七层: a.   b.   c.  ……
```

关键规则:

- 一二级标题独占行,末尾不加标点
- 三级及以下可根据长短决定是否独占行;若独占行则末尾不加标点,否则标题后必须加句号
- 阿拉伯数字后用下角点(.),不用顿号(、)—— 这是国标硬性规定
- 带括号的序号不加点号
- 提交甲方报告不使用理工科论文编码法(如"1.2.1")

**v2.7.3 标题排版强规则(必须遵守):**

- **一级标题首行缩进2字符**(与正文一致,0.85cm),不是0或不缩进
- **二级标题首行缩进2字符**(与正文一致,0.85cm),不是0或不缩进
- **一级标题必须设置大纲级别为0**(`outlineLvl val="0"`),以便Word自动生成目录时识别
- **二级标题必须设置大纲级别为1**(`outlineLvl val="1"`),以便Word自动生成目录时识别
- **一级和二级标题字体颜色必须为黑色**(`w:color val="000000"`),不能是蓝色、主题色或其他颜色

**v2.7.4 分页规则(必须遵守)——只在以下位置强制另起页,其他地方一律不强制分页:**

1. **封面结束后**:封面最后一页之后,目录或正文必须另起一页
2. **目录结束后**:目录之后的正文必须另起一页
3. **每个一级标题另起页**:所有一级标题("一、""二、""三、"……)都设置 `page_break_before = True`
4. **每个附件标题另起页**:附件1、附件2……每个附件另起一页(`page_break_before = True`)
5. **其他地方不强制分页**:二级标题、三级标题、正文段落、图表标题等一律 `page_break_before = False` 或 None
6. **宽表格默认不横向分节**:检测到宽表格时,默认保留纵向页面并自动适应页面宽度;只有用户明确要求横排/横向页时,才使用 `--landscape-wide-tables`

### 五、页码

- 格式:`— X —`(一字线,5号半角宋体阿拉伯数字)
- 位置:版心下边缘之下7mm
- 奇数页居右空一字,偶数页居左空一字(需勾选"奇偶页不同")
- 封面不编页码、不计入页码数
- 附件与正文连续编排页码

### 六、页眉

- 左侧:报告名称,楷体五号加黑
- 右侧:编制单位名称,黑体小五
- 细横线与正文分隔

### 七、目录

- "目录"二字:黑体二号加粗,居中
- 一级:黑体四号加粗,行距1.5倍,段后6磅
- 二级:楷体小四加黑,行距1.5倍
- 三级:黑体五号,行距1.25倍
- **v2.7.3 目录排版强规则(必须遵守):**
  - 目录内容**不能留空**——必须有实际的条目内容
  - 默认显示到**二级目录**(一级标题+二级标题)
  - 每条目录条目包含:标题文本 + 前导点制表位 + 页码域
  - 条目格式严格遵循上方字体字号表(一级黑体四号加粗,二级楷体小四加黑)
  - 条目首行缩进2字符
  - 打开Word后右键目录 → "更新域" → "更新整个目录",可获取准确页码
- 建议使用Word自定义目录功能,通过"引用→目录→自定义目录→修改"设置格式

### 八、封面

- 标题:小标宋一号,加粗
- 说明文字(如"讨论稿""征求意见稿"):四号楷体,不加粗,括号内
- **副标题/说明文字**(标题与署名之间的所有非空段落):楷体四号,居中(v2.7.2 改进:不再要求以括号开头)
- 落款:楷体四号,不加粗,居中,位于页面底部(v2.7.2 改进:space_before 动态计算,避免副标题较多时落款溢出第二页)
- 日期:阿拉伯数字,具体到月份(如"2024年6月");汉字格式用"〇"不用"零"
- 不加页码,不计入页码数

### 九、表格

- 默认三线表:顶线和底线较粗,栏目线稍细
- 行数较多时可以每行加细边框
- 表标题标注在表正上方,keep_with_next确保不跨页分离
- 横排表格页码位置与正文一致

### 十、图例

- 序号按全文出现顺序编号(如"图3")
- 标题在图正下方,不与图分跨两页
- 图、表说明文字末尾不使用句号

### 十一、附件

- "附件"二字在正文下空一行左空二字,后标全角冒号
- 多个附件用阿拉伯数字标注顺序号
- 附件名称后不加标点
- 附件另面编排,"附件"二字及顺序号用黑体顶格排在版心左上角
- **v2.7.3 新增**:附件标题自动设置 `page_break_before = True` 强制另起页,黑体加粗,顶格不缩进,大纲级别0

### 十二、署名和日期

- 在正文(或附件说明)下空一行右空二字编排
- 日期在署名下一行,首字比署名首字右移二字
- 日期用阿拉伯数字标全,月日不编虚位(1不编为01)

### 十三、标点符号(v2.7 新增,对应国标 GB/T 15834—2011)

详见 [`references/punctuation_GB_T_15834-2011.md`](references/punctuation_GB_T_15834-2011.md)。要点:

- 纯中文上下文一律用全角标点
- ASCII 直引号 → 弯引号
- 半角括号包中文 → 全角括号
- 尖括号引法律法规 → 书名号
- `--` 或单 EM dash → `——`(两个 EM dash 连用)
- `...` 或单 `…` → `……`
- 数值范围用 `~`,不用 `-` 或 `—`
- 多个书名号、引号并列不加顿号
- 三级标题序号用下角点 `1.`,不用顿号 `1、`
- 图表标题末尾不加句号
- 标题独占行末尾不加标点

---

## 脚本使用说明

### format_word.py — 自动排版

```bash
pip install python-docx lxml

# 基础用法(默认开启标点修正)
python scripts/format_word.py input.docx

# 完整参数
python scripts/format_word.py input.docx output.docx \
  --mode full \
  --cover \
  --toc \
  --page-num-style dash \
  --header-left "XX公司十五五发展战略规划" \
  --header-right "编制单位"

# 关闭标点修正(甲方明确要求保留半角时)
python scripts/format_word.py input.docx --no-fix-punctuation

# 仅在明确需要横向页承载宽表格时启用
python scripts/format_word.py input.docx output.docx --landscape-wide-tables
```

参数说明:

- `--mode full|light`:full=完整排版(默认),light=仅修正字体字号行距
- `--cover`:标记第一页为封面(不加页码)
- `--toc`:标记有目录(单独处理目录格式)
- `--page-num-style dash|plain`:页码样式
- `--header-left`:页眉左侧文本
- `--header-right`:页眉右侧文本
- `--no-fix-punctuation`:**v2.7 新增**,关闭中文标点自动修正
- `--landscape-wide-tables`:**v2.7.4 新增**,将检测到的宽表格强制切换为横向页;默认不启用,避免表标题与表格被分到不同页面

### audit_word.py — 排版审查

```bash
# 基础审查
python scripts/audit_word.py input.docx

# 严格模式 + JSON输出
python scripts/audit_word.py input.docx --strict -o report.json

# 只看标点问题
python scripts/audit_word.py input.docx --only-punctuation
```

审查项包括:

- 页面尺寸和页边距
- 各级标题字体、字号、加粗
- 标题层级跳跃
- 标题末尾标点
- 标题首行缩进
- 正文字体
- 空格冒充首行缩进
- 行距
- 表格/图例序号连续性
- 封面 / 目录 / 正文分页边界
- 表标题与表格是否紧邻、表标题是否设置与下段同页
- **标点符号 P1–P20(v2.7 重写,对应国标 GB/T 15834—2011)**
- 数字格式(年份缩写、百分比范围)
- 三级标题序号顿号误用

---

## 脚本无法自动处理的事项(需人工额外检查)

以下事项需要在脚本运行后,由人工额外检查:

1. **每页最后一行不出现标题**:脚本设置了keep_with_next,但无法精确判断分页位置
2. **表格跨页时第二页重复表头**:python-docx支持有限,需手动处理
3. **封面的精确排版**:封面布局因报告而异,脚本仅设置字体字号。v2.7.2 改进了封面落款间距计算,但复杂封面仍需人工微调
4. **目录页码准确性**:脚本自动插入目录条目,但页码为占位值。需在Word中右键目录 → "更新域" → "更新整个目录"以获取准确页码
5. **图片的精确尺寸和位置**:取决于具体内容
6. **附件说明的精确位置**:取决于正文结构
7. **横排表格的页码方向**:仅在显式使用 `--landscape-wide-tables` 时需要在 Word 中手动复核;默认纵向排版不自动横排
8. **标点中需要人工判断的项**:单个 EM dash 是否为表内分隔符;句中半角句号是否为版本号缩写;引号内点号位置(独立成句 vs 句中成分)

---

## 与其他技能的协作

- **stop-slop-zh**:若报告文字存在 AI 痕迹,先采用 stop-slop-zh 去除 AI 文风,再以本技能排版(说明:本技能 v2.7 已涵盖标点层面的去 AI 化,stop-slop-zh 负责的是句式与措辞层面)

---

## 常见问题处理

**Q: 甲方另有特定排版要求时如何处理?**
A: 以甲方要求为准。可调整 format_word.py 中的常量值以适配。

**Q: 字体在本机显示异常如何处理?**
A: 须确认仿宋、楷体、黑体、方正小标宋简体等字体已安装。仿宋_GB2312 与方正小标宋建议安装 GBK 版。

**Q: 为何部分标题未被正确识别?**
A: 脚本通过正则匹配标题编号(如"一、""(一)""1.")识别层级。非标准编号格式须手动处理。

**Q: 提交国企或政府的报告有何特殊要求?**
A: 须更严格遵循《党政机关公文格式》(GB/T 9704—2012),包括正文采用 3 号仿宋体、每面 22 行 28 字、页码采用一字线格式等。可通过调整常量进行适配。

**Q: 自动标点修正是否会破坏代码块或 URL?**
A: 不会。`fix_chinese_punctuation` 内置白名单,自动跳过 URL、邮箱、文件路径、千分位、小数点、版本号等。若文档中含有不规则的代码片段或英文引用,建议先执行 `audit_word.py` 查看具体的预期修改范围,再决定是否启用 `--no-fix-punctuation`。

**Q: 为何 audit 报告中 P12(单 EM dash)仅标记为 INFO?**
A: 单个 `—` 在表内、目录、数值范围连接符等场合可能为合法用法(如 "2024 年 1 月—2024 年 12 月"),机械化判断容易误伤。本规则仅在正文中文上下文中可能误用时给出提示,由人工根据语义研判是否调整为 `——`。

---

## 版本历史

- **v2.7.4(2026-06)**:兼容性补丁——封面推断遇到"目录/目 录"即停止,避免目录被误纳入封面;已有目录标题强制另起页;宽表格默认保留纵向页面并自动适应宽度,仅在显式 `--landscape-wide-tables` 时启用横向分节;表标题识别扩展到"表1-XXX / 表1:XXX / 表 1—XXX";audit 新增封面/目录/正文分页边界与表标题绑定检查
- **v2.7.3(2026-06)**:分页规则重构——只在4个位置强制另起页(封面结束后、目录结束后、每个一级标题、每个附件标题),其他地方一律不强制分页;一级和二级标题首行缩进2字符、赋予大纲级别(0/1)以便生成目录、字体强制黑色(RGB 000000)避免蓝色;目录条目自动插入——`--toc` 时不再留空,自动生成一级和二级目录条目(含前导点+页码域),打开Word后右键更新域即可获取准确页码;附件标题识别与格式化(黑体加粗、顶格、大纲级别0、另起页)
- **v2.7.2(2026-06)**:封面副标题识别改进(不再要求括号开头,标题与署名间所有非空段落均居中);落款 space_before 动态计算(避免副标题较多时溢出第二页);机构/日期识别更精确(含冒号段落排除、机构后缀连用匹配)
- **v2.7(2026-05)**:新增国标 GB/T 15834—2011 标点规则强约束;audit 增加 P1–P20 标点检测;format 默认开启 fix_chinese_punctuation
- **v2.6(2025-09)**:中文 Word 排版标准 V2.6 基础版

使用说明

# Word 报告自动排版

一键把 Word 报告刷成规范格式:页面设置、字体字号、标题层级、行距段距、页码页眉、目录、三线表、图表标题、封面附件、署名日期;同时修复半角标点冒充全角等 AI 写作常见标点问题,严格执行国标 GB/T 15834-2011。

## 使用

```bash
pip install python-docx lxml

# 自动排版(一键刷格式 + 修标点)
python scripts/format_word.py 报告.docx -o 报告_排版后.docx

# 排版审查(只出问题清单,不改文件)
python scripts/audit_word.py 报告.docx

# 中文标点修正
python scripts/punctuation.py 报告.docx -o 报告_标点修正.docx
```

也可以直接说「帮我排版这个 Word」「检查报告格式」,由助手调用对应脚本。

## 工作原理

三个脚本各司其职:`format_word.py` 依据内置排版标准常量重写样式与版式;`audit_word.py` 逐项核对并输出分级问题清单;`punctuation.py` 按「前后任一侧为中文字符即须全角」原则扫描十类半角标点错误并安全替换。排版标准细则见 SKILL.md 速查表,标点判定规则见 `references/punctuation_GB_T_15834-2011.md`。

如何安装此技能?

访问技能市场,点击「安装」按钮,按提示将技能包放入 AI 编程助手的 skills 目录即可。

浏览技能市场

支持平台:Qoder · QoderWork · Claude · Codex 等 AI 编程助手