依据《博维咨询Word版报告行文排版标准 V2.6-20250920》+ 国标《GB/T 15834—2011 标点符号用法》。
> 前置依赖: 使用本技能前,需确保已安装 python-docx 和 lxml:
> ```bash
> pip install python-docx lxml
> ```
> 本技能中的脚本位于 scripts/ 目录下,引用参考文档位于 references/ 目录下。
标点符号必须符合 GB/T 15834—2011 国标。AI 生成的中文 Word 文档中最常见、亦最难凭肉眼察觉的错误,即"形似中文实为半角"的标点。此项为所有排版交付前第一项必须扫描的硬性指标。
| 错误模式 | 正确写法 | 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。执行任何排版任务之前,须先阅读该参考文档。
format_word.py 默认启用 fix_chinese_punctuation。运行后自动修正绝对安全的半角→全角问题。
audit_word.py 报告中列出,交由人工研判。
python format_word.py input.docx --no-fix-punctuation
根据用户需求选择合适的模式:
用户已有一份Word文档,需要按博维标准统一格式。
执行步骤:
references/punctuation_GB_T_15834-2011.md——充分掌握标点规则,方能准确解读 audit 报告
```bash
python scripts/format_word.py input.docx output.docx \
--cover --toc --page-num-style dash \
--header-left "报告名称" --header-right "博维管理咨询"
```
```bash
python scripts/audit_word.py output.docx --strict
```
用户希望检验现有文档是否符合博维排版标准,但不一定执行自动修改。
执行步骤:
```bash
python scripts/audit_word.py input.docx --strict -o report.json
```
从零创建一份符合博维标准的Word报告。
执行步骤:
以下是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)"…… |
| 正文 | 仿宋(中文)/ 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. ……
关键规则:
— X —(一字线,5号半角宋体阿拉伯数字)
--toc 时自动插入目录条目(默认显示到二级目录),条目包含标题文本+前导点+页码域。打开Word后右键"更新域"即可获取准确页码
详见 references/punctuation_GB_T_15834-2011.md。要点:
-- 或单 EM dash → ——(两个 EM dash 连用)
... 或单 … → ……
~,不用 - 或 —
1.,不用顿号 1、
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
参数说明:
--mode full|light:full=完整排版(默认),light=仅修正字体字号行距
--cover:标记第一页为封面(不加页码)
--toc:标记有目录(单独处理目录格式)
--page-num-style dash|plain:页码样式
--header-left:页眉左侧文本
--header-right:页眉右侧文本
--no-fix-punctuation:v2.7 新增,关闭中文标点自动修正
# 基础审查
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
审查项包括:
以下事项需要在脚本运行后,由人工额外检查:
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 月"),机械化判断容易误伤。本规则仅在正文中文上下文中可能误用时给出提示,由人工根据语义研判是否调整为 ——。
page_break_before = True 强制另起页;二级及以下标题确保不强制分页;一级和二级标题首行缩进2字符、赋予大纲级别(0/1)以便生成目录、字体强制黑色(RGB 000000)避免蓝色;目录条目自动插入——--toc 时不再留空,自动生成一级和二级目录条目(含前导点+页码域),打开Word后右键更新域即可获取准确页码
共 2 个版本