最近在写毕业论文,因为不断的修改添加了大量了引用,导致编号非常混乱,显得非常不美观,
又恰逢女朋友学校强制要求引用目录按照引用顺序排序,因此不得已开发了一个程序来对引用进行自动编号,
开发过程一波三折,难度也比一开始的设想大了很多,
因为需要处理书签引用和纯手写的引用,本来是想使用PyDocX的,测试后发现PyDocX读取书签引用有问题,
最后只能手写个简单的代码解析docx,虽然很麻烦但是总算是搞定了。
项目地址:https://github.com/Casxt/SortReference
效果图
支持的场景
请确保文件中中有且只有[n]
这一种引用格式,[1-3]
或 [1,2,3]
等形式需要统一改写成[1][2][3]
。
请确保word中所有形如[n]
的字符串均代表引用。
否则这些字符也会被计入引用而被错误的改写,如果有的话可以先把不代表引用的字符替换为其他格式比如<n>
等到程序处理完后再改写回来。
使用方法
首先确保已经安装python3.6或更高版本。
使用 pip 安装依赖
1
python -m pip install sort_reference
指定输入输出文件
1
python -m sort_reference [input] [output]
如:
python -m sort_reference testcase/paper.docx testcase/processed_paper.docx
手动处理引用目录顺序
最后的引用目录重新编号后会如效果图的右图所示,因为word文档结构太复杂了,没法自动对引用目录排序,所以执行完后需要手动调整一下目录顺序。
如果有报错请看github主页里的报错处理方案,大部分时候简单修改一下文档就能解决掉