0%

word文档参考文献按引用顺序自动调整编号

最近在写毕业论文,因为不断的修改添加了大量了引用,导致编号非常混乱,显得非常不美观,

又恰逢女朋友学校强制要求引用目录按照引用顺序排序,因此不得已开发了一个程序来对引用进行自动编号,

开发过程一波三折,难度也比一开始的设想大了很多,

因为需要处理书签引用和纯手写的引用,本来是想使用PyDocX的,测试后发现PyDocX读取书签引用有问题,

最后只能手写个简单的代码解析docx,虽然很麻烦但是总算是搞定了。

项目地址:https://github.com/Casxt/SortReference

效果图

demo

支持的场景

请确保文件中中有且只有[n]这一种引用格式,[1-3][1,2,3]等形式需要统一改写成[1][2][3]

请确保word中所有形如[n]的字符串均代表引用。

否则这些字符也会被计入引用而被错误的改写,如果有的话可以先把不代表引用的字符替换为其他格式比如<n>等到程序处理完后再改写回来。

使用方法

首先确保已经安装python3.6或更高版本。

  1. 使用 pip 安装依赖

    1
    python -m pip install sort_reference
  2. 指定输入输出文件

    1
    python -m sort_reference [input] [output] 

    如:python -m sort_reference testcase/paper.docx testcase/processed_paper.docx

  3. 手动处理引用目录顺序

    最后的引用目录重新编号后会如效果图的右图所示,因为word文档结构太复杂了,没法自动对引用目录排序,所以执行完后需要手动调整一下目录顺序。

如果有报错请看github主页里的报错处理方案,大部分时候简单修改一下文档就能解决掉