Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

论文排版工具

面向通用论文场景的 Windows 桌面排版工具。默认内置 华南农业大学 2024 本科毕业论文 配置,也支持通过 YAML 配置适配其他学校。

这个版本更强调“直接好用”:

  • 参数集中在一个桌面工作台里完成
  • 常见论文格式问题可以一次处理
  • 操作路径更清晰,适合赶论文时快速使用

界面截图

当前版本亮点

1. 一套流程处理常见论文排版任务

  • 支持 .docx.doc.txt.md.tex 输入,统一输出 .docx
  • 页面、正文、标题、页眉页码、目录、图表、封面声明都能集中配置
  • 支持配置保存和加载,方便同校同学复用模板

2. 更适合桌面效率工具的界面

  • 左侧导航、右侧配置区、底部操作区分工更清楚
  • 长页面可以直接滚动,不用反复拖滚动条
  • 主操作按钮和运行日志更容易找到
  • 界面语言和交互都更偏实用,不做花哨装饰

3. 覆盖论文里最麻烦的一批格式问题

  • 标题层级、编号与段距统一
  • 页码、页眉、前置页与正文分区处理
  • 图表题注、三线表、参考文献缩进等高频问题可配置
  • 支持封面、声明页和特殊标题映射

主要优点

  • 不只是改字体字号,而是把论文里常见的排版环节放到一套流程里处理
  • 对“标题编号乱、目录不一致、页码不对、题注不规范、参考文献缩进错误”这类问题更有针对性
  • 上手门槛低,适合先用默认配置直接跑,再按学校要求微调
  • 既能点界面,也能走命令行,方便个人使用和分发给同学

使用时需要知道的边界

  1. 仍然建议人工复核最终文档

    • 这个工具能大幅减少重复劳动,但不能替代最终审稿和格式核对。
  2. 不同学校要求差异大时,仍需要自己调配置

    • 默认配置偏向 SCAU 2024。
    • 换学校时,封面、声明、摘要页、特殊标题等通常需要按本校要求调整。
  3. 原稿越规范,自动处理效果越稳定

    • 如果标题、题注、结构写法非常随意,工具可能无法完全按预期识别。
  4. 部分能力依赖本机环境

    • .doc 转换、目录更新等场景在 Windows + Word 环境下效果更完整。
    • .txt/.md/.tex 转换需要 Pandoc。
  5. 复杂版面仍可能需要手工微调

    • 比如图片内部文字、复杂表格局部布局、特殊文本框等,不属于完全自动处理范围。

适用场景

  • 论文初稿已经写完,需要统一格式
  • 学校有一套明确规范,但手工调整太耗时
  • 同一学院或同学之间希望共享一套配置模板
  • 想先快速生成一版规范文档,再做最后人工检查

快速开始

1. 安装依赖

pip install -r requirements.txt

当前依赖:

  • python-docx
  • pyyaml
  • pywin32
  • ttkbootstrap

2. 启动 GUI

python run_gui.py

3. 命令行使用

python thesis_format_cli.py --input 论文.docx
python thesis_format_cli.py --input 论文.docx --output 论文_规范版.docx
python thesis_format_cli.py --input 论文.docx --config thesis_config.yaml
python thesis_format_cli.py --dump-config

单独处理模式

适合只修局部、不想大动正文时使用:

  • 单独改页码:只按现有分节调整页码,不自动补分节,尽量少动正文。
  • 单独改页眉:只按现有分节调整页眉,不自动补分节,尽量少动正文。
  • 单独插入/更新目录、单独插入外部封面,仍按原有单独处理逻辑执行。

输入与依赖说明

输入格式 说明 额外依赖
.docx 直接进入格式化流程
.doc 先转 .docx 需要 Microsoft Word
.txt 预处理后经 Pandoc 转 .docx 需要 Pandoc
.md Pandoc 转 .docx 需要 Pandoc
.tex Pandoc 转 .docx 需要 Pandoc

原稿准备建议

txt 原稿怎么准备最合适

txt 更适合 纯文字为主、结构比较规整 的论文初稿。按当前代码,最稳妥的准备方式是:

  • 不要放图片。txt 本身不适合承载图片内容,图像类内容建议走 Word 原稿。
  • 全部文字顶格写,不要手动打空格做首行缩进,也不要用制表符做人为排版。
  • 标题尽量单独占一行,正文另起段。
  • 常见标题写法都能识别,例如:第1章1.11.1.11.1.1.1一、(一)Chapter 1
  • 中文摘要建议单独写一行 摘要,关键词写成 关键词:...
  • 英文摘要建议写成 Abstract: 或单独一行 Abstract 后下一行接正文;英文关键词写成 Key words: ...
  • 如果有表格,最适合的写法是:先写表题行,再用 Tab 分隔 每列数据。这样工具更容易把它转成表格。
  • 从 Word 表格直接复制到 txt 也可以识别,前提是粘贴后仍然保持为 Tab 分列 的文本行。
  • 参考文献建议按 [1] ...[2] ... 这种形式逐条写。

一句话理解:txt 最适合“没有图片、没有复杂版面、正文和标题都很规整”的原稿。 这种情况下,工具处理起来通常最省心。

Word 原稿怎么准备更稳

Word 原稿的兼容性更强,适合带图片、表格、脚注和已有版面内容的论文。当前代码下,推荐程度分两档:

最推荐的做法

  • 先把正文标题尽量套上 Heading 1Heading 4(或对应中文标题样式)。
  • 让每一级标题单独成段,不要把标题和正文写在同一段里。
  • 图题、表题尽量写成规范形式,例如 图1.1 ...表1.1 ...续表1.1 ...
  • 摘要、目录、参考文献、致谢这些特殊标题尽量单独成段。

这样做的好处是:识别更稳、遗漏更少、目录和题注处理也更可靠。

没有先排版也不是完全不能用

按当前代码,Word 原稿即使没有先套标题样式,工具也会自动尝试识别一部分标题并补上层级。也就是说,完全未排版的草稿不是完全不支持

但要注意,这种自动识别更依赖原稿本身写得规整:

  • 标题最好是单独一行。
  • 标题不要写成长句,越像“一个独立标题”越容易识别。
  • 编号标题最好保持常见格式,例如 第1章 绪论1.1 研究背景1.1.1 ...
  • 特殊标题如 摘要参考文献致谢 单独成段更稳。

所以更准确的说法是: Word 原稿支持“未完整排版”的内容,但如果你能先把标题层级套好,整体成功率和完整度会更高。

项目结构

路径 说明
thesis_gui.py 桌面 GUI
run_gui.py GUI 启动脚本
thesis_format_cli.py CLI / GUI 统一入口
thesis_runner.py 输入转换、格式化、后处理总流水线
thesis_config.py 默认配置与 YAML 加载
thesis_formatter/ 核心排版逻辑
word_postprocess.py Word 后处理
defaults/scau_2024.yaml 默认学校配置
tests/ 自动化测试

测试

python -m unittest discover -s tests

打包

项目内保留了 build_exe.batthesis-format.spec,可继续用于 Windows exe 打包。

许可证

GPL-3.0

About

偷偷开源的排版工具 - 一键格式化毕业论文

Resources

Stars

163 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages