| name | wps-thesis |
| description | 毕业论文排版。按高校标准生成论文文档,包含封面、中英文摘要、
目录、正文章节、参考文献(GB/T 7714)、致谢等完整结构。
用于帮助学生排版毕业论文。当用户提到论文、毕业论文、论文排版时触发。
Academic thesis formatter.
|
| license | MIT |
| user-invocable | true |
| argument-hint | [论文标题/内容] [学校名称(可选)] |
| allowed-tools | Read, Grep, Glob, Bash, Write, Edit |
| metadata | {"author":"BWKYD","title":"毕业论文排版","description_zh":"按高校标准排版毕业论文,包含封面、摘要、目录、参考文献等","tags":["论文","毕业论文","学术","python-docx","WPS"],"version":"1.0.2","license":"MIT"} |
论文排版工具
按高校标准自动排版毕业论文 / 学术论文(.docx)。
每个大学生的论文排版噩梦,到此为止。
When to Use
- 毕业论文排版(本科/硕士/博士)
- 学术论文/期刊论文格式化
- 论文模板生成
- 已有论文内容需要重新排版
When NOT to Use
- 一般工作报告 → 使用
wps-report-writer
- 公文排版 → 使用
wps-gongwen
- 只需要校对内容 → 使用
wps-proofread
论文通用格式标准
页面设置
纸张:A4 (210mm × 297mm)
上边距:30mm
下边距:25mm
左边距:30mm(装订侧加宽)
右边距:20mm
页眉:15mm,含学校名/论文标题
页脚:页码居中,小五号
字体字号规范
| 元素 | 字体 | 字号 | 说明 |
|---|
| 论文题目 | 黑体 | 小二号(18pt) | 居中,加粗 |
| 章标题(第X章) | 黑体 | 三号(16pt) | 居中,加粗 |
| 节标题(X.X) | 黑体 | 四号(14pt) | 左对齐,加粗 |
| 小节标题(X.X.X) | 黑体 | 小四号(12pt) | 左对齐,加粗 |
| 正文 | 宋体 | 小四号(12pt) | 首行缩进2字符 |
| 摘要标题 | 黑体 | 三号(16pt) | 居中 |
| 摘要内容 | 宋体 | 小四号(12pt) | |
| 关键词 | 黑体+宋体 | 小四号(12pt) | "关键词:"黑体,内容宋体 |
| 参考文献 | 宋体 | 五号(10.5pt) | |
| 页眉 | 宋体 | 小五号(9pt) | |
| 页码 | Times New Roman | 小五号(9pt) | |
行距
正文:1.5倍行距
摘要:1.5倍行距
参考文献:单倍行距
图表标题:单倍行距
工作流程
Step 1: 确认论文信息
必填信息:
- 论文题目(中文 + 英文)
- 作者姓名
- 学校/院系
- 专业
- 指导教师
- 日期
- 学位类型:本科/硕士/博士
可选信息:
Step 2: 论文结构
标准毕业论文结构:
[封面]
[独创性声明]
[中文摘要 + 关键词]
[英文摘要 + Keywords]
[目录]
──────────────────
第一章 绪论
1.1 研究背景
1.2 研究现状
1.3 研究内容与方法
1.4 论文结构
第二章 相关理论与技术
2.1 ...
第三章 系统设计 / 方法论
3.1 ...
第四章 实验与分析
4.1 ...
第五章 总结与展望
5.1 主要工作总结
5.2 不足与展望
──────────────────
[参考文献]
[致谢]
[附录](可选)
[个人简历/发表论文](硕博)
Step 3: 生成 .docx 文件
pip install python-docx 2>/dev/null || pip3 install python-docx 2>/dev/null
核心生成逻辑:
from docx import Document
from docx.shared import Pt, Mm, Cm, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.section import WD_ORIENT
from docx.oxml.ns import qn, nsdecls
from docx.oxml import parse_xml, OxmlElement
import os
def create_thesis(info, content=None, output_path=None):
"""
info = {
'title_cn': '基于深度学习的图像识别系统研究',
'title_en': 'Research on Image Recognition System Based on Deep Learning',
'author': '张三',
'school': 'XX大学',
'department': '计算机科学与技术学院',
'major': '计算机科学与技术',
'advisor': '李四 教授',
'degree': '硕士', # 本科/硕士/博士
'student_id': '2023XXXX',
'date': '2026年6月',
}
"""
doc = Document()
section = doc.sections[0]
section.page_width = Mm(210)
section.page_height = Mm(297)
section.top_margin = Mm(30)
section.bottom_margin = Mm(25)
section.left_margin = Mm(30)
section.right_margin = Mm(20)
def set_font(run, name='宋体', size=12, bold=False, color=None):
run.font.size = Pt(size)
run.font.name = name
run._element.rPr.rFonts.set(qn('w:eastAsia'), name)
run.bold = bold
if color:
run.font.color.rgb = color
def add_heading_cn(text, font_name=, size=, bold=,
align=WD_ALIGN_PARAGRAPH.CENTER):
p = doc.add_paragraph()
p.alignment = align
p.paragraph_format.space_before = Pt()
p.paragraph_format.space_after = Pt()
p.paragraph_format.line_spacing = Pt()
run = p.add_run(text)
set_font(run, font_name, size, bold)
p
():
p = doc.add_paragraph()
p.paragraph_format.line_spacing = Pt()
indent:
p.paragraph_format.first_line_indent = Pt()
run = p.add_run(text)
set_font(run, , )
p
_ ():
doc.add_paragraph()
p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = p.add_run(info[])
set_font(run, , , )
p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
p.paragraph_format.space_before = Pt()
degree_text = {: , : ,
: }.get(info[], )
run = p.add_run(degree_text)
set_font(run, , )
doc.add_paragraph()
p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
p.paragraph_format.space_before = Pt()
run = p.add_run(info[])
set_font(run, , , )
doc.add_paragraph()
fields = [
(, info[]),
(, info.get(, )),
(, info.get(, )),
(, info[]),
(, info[]),
(, info[]),
]
label, value fields:
value:
p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run1 = p.add_run()
set_font(run1, , )
run2 = p.add_run(value)
set_font(run2, , )
doc.add_page_break()
add_heading_cn(, , )
add_body()
doc.add_paragraph()
p = doc.add_paragraph()
run = p.add_run()
set_font(run, , , )
run2 = p.add_run()
set_font(run2, , )
doc.add_page_break()
add_heading_cn(, , )
add_body()
doc.add_paragraph()
p = doc.add_paragraph()
run = p.add_run()
run.font.size = Pt()
run.font.name =
run.bold =
run2 = p.add_run()
run2.font.size = Pt()
run2.font.name =
doc.add_page_break()
add_heading_cn(, , )
add_body(, )
doc.add_page_break()
chapters = [
(, [, ,
, ]),
(, []),
(, []),
(, [, ,
]),
(, [, ]),
]
chapter_title, sections chapters:
add_heading_cn(chapter_title, , )
sec sections:
p = doc.add_paragraph()
p.paragraph_format.space_before = Pt()
run = p.add_run(sec)
set_font(run, , , )
add_body()
doc.add_page_break()
add_heading_cn(, , )
refs = [
,
,
,
]
ref refs:
p = doc.add_paragraph()
run = p.add_run(ref)
set_font(run, , )
doc.add_page_break()
add_heading_cn(, , )
add_body()
output_path:
output_path =
doc.save(output_path)
os.path.abspath(output_path)
Step 4: 交付
- 生成 .docx 论文框架
- 提示用户填充各章节内容
- 提醒在WPS中插入自动目录
- 建议使用WPS的样式功能维护标题层级
参考文献格式(GB/T 7714-2015)
[期刊] 作者. 题名[J]. 刊名, 出版年, 卷(期): 起止页码.
[图书] 作者. 书名[M]. 版次. 出版地: 出版者, 出版年: 页码.
[学位论文] 作者. 题名[D]. 保存地: 保存单位, 年份.
[会议论文] 作者. 题名[C]//会议录. 出版地: 出版者, 年: 页码.
[网络文献] 作者. 题名[EB/OL]. (发布日期)[引用日期]. URL.
[专利] 申请者. 专利名[P]. 专利国: 专利号, 公告日期.
[标准] 标准号. 标准名称[S]. 出版地: 出版者, 年份.
示例
/wps-thesis 基于深度学习的图像识别系统研究,硕士论文,浙江大学计算机学院
/wps-thesis 帮我生成一份本科毕业论文的排版模板,题目是"中小企业数字化转型研究"
/wps-thesis 帮我把 draft.md 的论文内容排版成标准格式的docx