paper-check

本科/研究生毕业论文格式规范检测、自动修复与对比报告生成工具。 当用户需要检查论文格式是否符合学校规范、修复论文格式问题、生成修改对比报告时使用此 Skill。 支持任意学校的撰写规范文档(.doc/.docx/.txt/.pdf)输入,自动解析规范要求并与论文文档进行逐项对比检测。 典型触发场景:用户提到"论文格式检查"、"毕业论文排版"、"格式规范检测"、"论文格式修复"、"对比报告"等。

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "paper-check" with this command: npx skills add sashavegal/paper-check

毕业论文格式规范检测与修复

Overview

本 Skill 提供一套完整的毕业论文格式检测工作流,支持任意学校的撰写规范文档输入,自动化完成:规范解析 → 格式检测 → 问题诊断 → 自动修复 → 对比报告生成。

前置要求

  • Python 3.7+
  • 依赖库:python-docx(必需),pywin32(仅 Windows 读取 .doc 格式时需要),lxml
  • 安装命令:pip install python-docx lxml pywin32

核心工作流

Phase 1: 输入收集

收集以下信息:

  1. 规范文档(可选):学校的毕业论文撰写规范文件(支持 .doc / .docx / .txt / .pdf 格式)
  2. 论文文档:待检查的毕业论文 .docx 文件
  3. 输出目录:检查报告和修复文件的存放路径(默认与论文文件同目录)

规范来源优先级

  1. ✅ 用户提供了规范文档 → 解析该文档,按院校规范执行检查和修复
  2. ✅ 用户未提供规范文档 → 使用本 Skill 内置的通用默认规范(见下方"通用格式检查清单"章节),基于 GB/T 7713.1-2006 等国标和多校通用惯例

注意:建议告知用户"当前使用通用默认规范,如需按特定院校规范检查,请提供学校官方的论文撰写规范文件"。

Phase 2: 规范文档解析

根据规范文档格式选择解析方式:

  1. .txt 文件:直接读取
  2. .docx 文件:使用 python-docx 提取文本
  3. .doc 文件(Windows):使用 pywin32 COM 接口转换
  4. .pdf 文件:使用可用的 PDF 提取工具

解析规范文档后,提取以下关键格式要求(参考 references/format_rules_template.md):

  • 页面设置:页边距(上/下/左/右)、装订线、页眉距、页脚距
  • 字体字号:各部分(封面/摘要/正文/标题/参考文献/致谢等)的中英文字体、字号、加粗/斜体
  • 段落格式:对齐方式、首行缩进、悬挂缩进、行距、段前段后间距
  • 页眉页脚:内容、字体、对齐、页码格式
  • 标题格式:各级标题的字体字号、编号格式、段前段后
  • 表格格式:三线表规则、边框粗细
  • 图片格式:图题位置、字体字号
  • 参考文献:著录格式(GB/T 7714)、缩进方式、文献标识
  • 特殊部分:摘要、目录、致谢、附录的特殊格式要求

Phase 3: 论文格式全面检测

运行格式检测脚本 scripts/check_format.py 对论文文档进行全面扫描。检测脚本会输出以下信息:

  1. 页面设置信息(每个节的页边距、页眉页脚距、纸张方向)
  2. 文档样式定义(Normal、Heading 1-4、TOC 等关键样式)
  3. 段落详细格式(每个段落的样式、对齐、间距、缩进、字体信息)
  4. 表格格式信息(边框样式、粗细、对齐)
  5. 图片信息(尺寸、位置、上下文)
  6. 编号/列表定义
  7. 文档默认字体设置

执行方式:

python scripts/check_format.py <论文路径> <报告输出路径>

Phase 4: 问题诊断与分析

将检测报告与规范要求逐项比对,生成问题清单。每个问题包含:

字段说明
位置段落编号/节编号/表格编号
检查项检查的格式属性
规范要求对应的规范条款内容
当前值论文中的实际值
严重程度高/中/低
修复建议具体的修复方案

严重程度分级标准:

  • :页边距错误、标题字体字号错误、行距错误等影响整体排版的问题
  • :缩进方式不当(固定厘米值 vs 字符单位)、段前段后间距缺失
  • :需人工确认的内容性问题(参考文献格式、页眉横线等)

Phase 5: 自动修复

使用 scripts/fix_format.py 脚本模板自动修复可自动化的格式问题。

修复能力范围:

  • ✅ 页面边距(上/下/左/右/页眉距/页脚距/装订线)
  • ✅ 段落首行缩进(固定厘米值 → 字符单位)
  • ✅ 段落悬挂缩进
  • ✅ 段前段后间距
  • ✅ 对齐方式(左/中/右/两端对齐)
  • ✅ 字体设置(中文字体 + 西文字体 + 字号)
  • ✅ 页眉内容和格式
  • ✅ 表格三线表边框
  • ✅ 标题字间距(如"参 考 文 献")

无法自动修复(需提示用户手动处理):

  • ❌ 页眉横线(python-docx 限制)
  • ❌ 参考文献编号内容(如添加 [1] [2])
  • ❌ 目录更新(需在 Word 中操作)
  • ❌ 图片/公式的精确位置调整
  • ❌ 脚注格式

Phase 6: 对比报告生成

使用 scripts/generate_report.py(v5.0)生成修改前后对比报告(.docx 格式,A4 横向),包含:

  1. 报告标题:论文名称、修改日期、修改项数
  2. 对比表格(6列):序号 | 位置/定位 | 检查项 | 规范文档要求 | 修改前(原文件) | 修改后(已修复)
  3. 智能位置定位
    • 单个段落显示为"第N段"
    • 多处同类修改合并显示范围"第88~394段(共166处)"
    • 附带章节名称(如【研究背景和意义、国内外研究现状等】)
    • 附带原文内容预览,便于快速定位修改位置
  4. 颜色区分:修改前红色文字、修改后绿色文字+绿色底纹
  5. 分类展示:按检查类别(页面设置/摘要/页眉/正文/参考文献等)分组,交替行背景色
  6. 修改统计:按分类显示已修复/总数,✅已完成 / ⚠️待确认
  7. 人工确认事项:列出无法自动修复的问题
  8. 修改依据:标注规范文档来源

两种调用接口

  • create_report_from_records(output, title, subtitle, date, records) — ★推荐:从 fix_format.repair_records 自动生成,智能合并同类修改
  • create_report(output, title, subtitle, date, total, categories) — 兼容v2.0:手动传入 categories

通用格式检查清单(默认规范)

以下为中国高校毕业论文常见的格式检查项,基于 GB/T 7713.1-2006 等国标和多校规范汇总。 当用户未提供规范文档时,按以下默认值执行检查和修复

1. 页面设置(默认值)

  • 纸张大小:A4 (210mm × 297mm)
  • 页边距:上 2.8cm / 下 2.2cm / 左 3.0cm / 右 2.0cm
  • 装订线:0mm(左侧)
  • 页眉距:1.8cm
  • 页脚距:1.4cm

2. 封面格式(默认值)

  • 题目字体字号:三号黑体加粗,居中
  • 学生信息字体字号:小四号宋体
  • 对齐方式:居中
  • 日期格式:中文格式

3. 摘要格式(默认值)

  • "摘要"标题:三号黑体加粗,居中,字间 2 个汉字字距,段前段后各 1 行
  • 摘要正文:小四号宋体/Times New Roman,首行缩进 2 字符,1.5 倍行距
  • 关键词:"关键词"三字加粗,分号分隔,末尾无标点
  • 英文摘要(Abstract)与中文摘要对应格式

4. 目录格式(默认值)

  • "目录"标题:三号黑体加粗,居中,字间 2 个汉字字距
  • 各级目录条目:小四号宋体
  • 目录显示级数:3 级

5. 正文格式(默认值)

  • 中文字体:小四号宋体
  • 英文/数字字体:小四号 Times New Roman
  • 行距:1.5 倍
  • 首行缩进:2 字符
  • 各级标题格式:一级 三号黑体 / 二级 小三号黑体 / 三级 四号黑体 / 四级 小四号黑体

6. 图表格式(默认值)

  • 表格:一律三线表(上下粗线 1.5 磅,中间细线 1 磅)
  • 图题:在图下方,五号宋体,居中
  • 表题:在表上方,五号宋体,居中
  • 续表标注

7. 参考文献(默认值)

  • "参考文献"标题:三号黑体加粗,居中,字间加空格
  • 著录格式:GB/T 7714-2015
  • 文献类型标识:[M] [J] [D] [C] [P] [R] [S] [N] [EB/OL] 等
  • 缩进方式:悬挂缩进 2 字符
  • 字体:小四号宋体 / Times New Roman

8. 页眉页脚(默认值)

  • 页眉内容:奇数页为论文题目,偶数页为学校名+论文类型(如有要求)
  • 页眉字体字号:五号宋体 / Times New Roman,居中
  • 页码格式:阿拉伯数字,底部居中
  • 页眉横线:细线(0.5 磅)

9. 致谢/附录(默认值)

  • 标题:三号黑体加粗,居中,字间加空格
  • 内容字体字号:小四号宋体 / Times New Roman
  • 段前段后间距:标题段前段后各 1 行

10. 其他规范性检查

  • 标点符号规范(中文全角 vs 英文半角)
  • 计量单位规范(国际单位制)
  • 数字使用规范
  • 缩写使用规范(首次出现写全称)
  • 公式编号格式
  • 脚注格式
  • 中英文混排时的字体一致性
  • 孤行控制(标题不在页末、段尾不在页首)

脚本设计注意事项

重要:在编写修复脚本时,必须注意以下问题,避免函数间的逻辑冲突。

1. 函数执行顺序与依赖问题

问题描述:多个修复函数之间存在隐式依赖,后执行的函数可能无法检测到已被修改的内容。

典型案例

# 错误示例:fix_special_titles 先执行,修改了"参考文献"标题
def fix_special_titles(doc):
    # 将 "参考文献" 改为 "参  考  文  献"(字间加空格)
    ...

def fix_references(doc):
    # 用 '参考文献' in text 检测,但此时文本已被修改为 "参  考  文  献"
    if '参考文献' in text and len(text) < 10:  # 检测失败!
        ...

解决方案

# 方案1:使用清理后的文本进行检测
clean_text = text.replace(' ', '')
if clean_text == '参考文献':
    ...

# 方案2:调整函数执行顺序,先检测再修改
# 1. 先执行需要检测原文本的函数(如 fix_references)
# 2. 再执行会修改文本的函数(如 fix_special_titles)

# 方案3:使用内置的 scripts/fix_format.py 函数,它们已处理好依赖关系
from fix_format import fix_page_setup, fix_special_titles, fix_references

2. 标题检测的精确性

问题描述:目录中可能包含类似标题的条目(如 致 谢\t43),导致误判。

典型案例

# 错误示例:目录条目被误判为致谢标题
if '致谢' in text:  # "致   谢\t43" 也包含 "致谢"
    in_refs = False  # 提前退出参考文献检测!

解决方案

# 方案1:清理文本后精确匹配
clean_text = text.replace(' ', '').replace('\t', '')
if clean_text == '致谢' and len(text) < 15:
    ...

# 方案2:使用正则表达式匹配
import re
if re.match(r'^致\s*谢$', text.strip()) and len(text) < 15:
    ...

3. 修复记录的完整性

问题描述:修复操作没有添加到 repair_records,导致报告中缺少该类别。

典型案例

# 错误示例:只修改,不记录
if para.alignment != WD_ALIGN_PARAGRAPH.CENTER:
    para.alignment = WD_ALIGN_PARAGRAPH.CENTER  # 没有调用 add_record
    changes += 1

解决方案

# 正确做法:每次修复都添加记录
if para.alignment != WD_ALIGN_PARAGRAPH.CENTER:
    add_record('特殊标题', '对齐方式', location, text,
              '居中', '非居中', '居中')
    para.alignment = WD_ALIGN_PARAGRAPH.CENTER
    changes += 1

4. 推荐的脚本结构

# 完整修复脚本模板
def main():
    # 1. 初始化文档结构
    init_structure(doc)
    
    # 2. 按正确顺序执行修复(先检测后修改)
    # 顺序:页面设置 → 段落格式 → 参考文献 → 特殊标题 → 页眉
    
    fix_page_setup(doc)      # 无文本依赖
    fix_paragraph_indent(doc) # 依赖原文本
    fix_references(doc)       # 依赖原文本(必须在 fix_special_titles 之前)
    fix_special_titles(doc)   # 会修改文本
    fix_header(doc)           # 无依赖
    
    # 3. 确保所有修复都有记录
    print(f"修复记录数: {len(repair_records)}")
    
    # 4. 生成报告
    generate_report(...)

5. 调试技巧

# 在关键检测点添加调试输出
if '参考文献' in text.replace(' ', ''):
    print(f"  [参考文献] P{i}: 进入参考文献部分")

# 检查修复记录是否完整
for cat in ['页面设置', '特殊标题', '段落格式', '页眉', '参考文献']:
    count = sum(1 for r in repair_records if r['category'] == cat)
    print(f"  {cat}: {count} 项")

关键技术要点

python-docx 缩进处理

重要经验:Word 文档中的首行缩进有两种单位:

  • 固定厘米值(firstLine in twips):不随字号变化,不同字号下显示效果不一致
  • 字符单位(firstLineChars):随字号自动调整,推荐使用

修复时应将固定厘米值转换为字符单位:

# 设首行缩进为 2 字符
ind.set(qn('w:firstLineChars'), '200')  # 200 = 2字符 × 100
ind.set(qn('w:firstLine'), '480')       # 配合值

Normal 样式继承

Normal 样式可能自带首行缩进。对于不需要缩进的段落(如居中标题),必须显式设置为 0,不能仅删除 <w:ind> 元素:

ind.set(qn('w:firstLine'), '0')
ind.set(qn('w:firstLineChars'), '0')

三线表实现

# 表级边框:上下粗线,无左右线,无内部线
# 标题行:通过单元格级别的 tcBorders 添加底部细线

页眉字体双重设置

页眉中文用宋体,西文用 Times New Roman,需要同时设置 w:eastAsiaw:ascii/w:hAnsi

Resources

scripts/

  • check_format.py — v2.0 全面格式检测脚本,含 DocumentStructure 章节定位能力,扫描 docx 文件的所有格式属性
  • fix_format.py — v2.0 格式修复脚本模板,包含各类 fix_* 函数,修复过程自动收集 repair_records 记录
  • generate_report.py — v5.0 精简对比报告生成器(6列表格含位置/定位列,智能合并同类修改,颜色区分,A4横向)

references/

  • format_rules_template.md - 格式规则模板,用于结构化存储从规范文档解析出的格式要求
  • common_issues.md - 常见格式问题汇总与修复方案(TOP 10 + python-docx 已知限制 + 修复优先级)

assets/

此 Skill 不包含静态资产文件。

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Hippo Video

Hippo Video integration. Manage Persons, Organizations, Deals, Leads, Activities, Notes and more. Use when the user wants to interact with Hippo Video data.

Registry SourceRecently Updated
General

币安资金费率监控

币安资金费率套利监控工具 - 查看账户、持仓、盈亏统计,SkillPay收费版

Registry SourceRecently Updated
General

apix

Use `apix` to search, browse, and execute API endpoints from local markdown vaults. Use this skill to discover REST API endpoints, inspect request/response s...

Registry SourceRecently Updated
0160
dngpng