06 Feb 2022

如何高效的写毕业论文

经验总结

[ Y-2022   thesis   word   tips   summary   ]

论文,表面上来看是几万个文字的堆砌,往深了看其实是一段时间的研究工作的总结。码字只是写论文的简单表现方式,表达研究思想、总结研究成果才是写论文的最终目的。如何高效的码字,如何让文字编辑的工作不成为写论文过程中的磕绊,让你更专注到论文的核心表达,是一个值得探讨的话题。为了写出一篇优质的论文,其实有很多技巧性的东西。掌握的好的话,不仅可以让你事半功倍,还可以让你体会到写论文的乐趣和成就感。

关于如何确定论文研究方向、开展实验并做数据分析,不在本文章的分享之列,这里主要介绍一些更高效的码字的技巧。这些技巧是我在自己撰写论文过程中的逐渐积累的,对我的帮助很大。我想把它们整理出来,算是对我研究生阶段的一个总结。如果对正在写论文的你有所裨益,将是我莫大的欣慰。

工程化以及版本管理

写论文是一个持续时间较长的工作,建议大家把它当成一个项目来做。我平时工作与程序代码打交道,因此我开始写论文的时候,做的第一件事就是建立一个工程文件夹,用来管理所有的与论文相关的内容。所以,下面给出本文第一个建议:

建议 1: 采用git对论文进行工程化管理

首先给大家展示下我的工程文件夹结构:
img

其主要由几部分组成:

  • images: 主要存放一些静态图片,比如:框图、流程图等
  • tables: 存放图表的原始数据,因为论文中的定量对比图示,都是利用python绘制的,就涉及到原始数据
  • *.drawio: 各个章节的使用draw.io绘制的图示,各自独立管理
  • *.bib: 论文中的所有参考文献
  • thesis: 论文文件(文件名拼写有笔误)

论文来来回回需要不断的修改更新,只要涉及到更新,就会有版本管理的问题。请问,你还在使用传统的版本管理方式,比如,拷贝一个文件夹备份,并命名初稿_1初稿_2或者最终版的最终版吗?如果是,请你一定要跟这种方式告别,是时候采用自动化的版本控制工具了。我这里推荐的是基于git进行版本控制,也建议没有编程背景的童鞋Google一下基础的git操作,学习它会让你受益终身。采用这种自动化工具的直接收益是可以极大的方便我们做管理更新。你每写一段内容、一个章节,甚至插入几张图片,都可以提交一个新的版本,从而实现增量式的更新。对于不满意的修改还可以直接快速回滚到之前的版本。下面给大家展示一下我的一部分提交历史:
img

至于提交频率,这个依个人习惯。建议多提交,小步迭代,勤打tag。也即是说,阶段性的完成一个章节,或者完成初稿、终稿等时,打上一个版本标签,方便回溯管理。详细的使用说明,这里不做过多阐述,大家可以在写论文的过程中逐渐学习体会。

基础

坦白说,本人一直不喜欢使用Word写文章的原因即是,调整格式的过程非常痛苦,会让你掉入调格式的黑洞而忘却了写文章的初衷。尤其在学会使用Markdown或者Latex写文章后,完全不用在意格式排版的感觉简直不要太爽,而且最终的整体排版都还挺好看。这样一来,Word就更不香了。但是对于毕业论文这种篇幅较长的文体,Word也确实有它得天独厚的优势。外加每个学校提供的格式模版都是基于Word的,所以还是得硬着头皮上。

提到Word,笼统的说无非就是码字+格式排版。怎么快速的码字,而且不被格式排版所束缚,是核心所在。下面简要给大家分享一些我在码字过程中自认为比较关键跟有用的东西。

样式

由于论文篇幅较长,章节较多,一级标题、二级标题,图表,参考文献,等等,每个不同的类型都有样式要求。如果每一个类型都手动去调整格式的话,将会是一个噩梦。而且来来回回的调整格式会磨灭你写论文的热情,从而没法专注到写论文的核心。所以,我建议:

建议 2: 一定要基于样式码字

根据论文的格式要求,首先建立好各个层级的样式,比如:多层级标题、图表标注等等。不论新建一个章节,或者插入一个图片、表格,采用这种基于样式码字的方式,将极大程度方便后续统一调整格式。这种基于样式码字的方式,核心是建立了一套统一的规范,从而保证论文中所有的同类型元素都采用一致的格式,这一点很关键。只要这种机制建立了,后续针对某一个样式有修改,所有的同类型元素的格式都将自动更新,相应的修改成本几乎为0。对于某些强迫症人来说,不一定非得把所有的样式都调整到最终要求才开始码字,可以在后续码字的过程中不断的完善。太纠结前期的完美,只会让自己码字的过程步履蹒跚。

基于域(Field)的编号管理

在Word中,管理所有带编号的元素,比如:图表、公式,使得其可以按章节自动编号,是一个苦力活。我曾经尝试使用工具栏中的一些按钮,去手动插入编号,最后效率都不是很理想,而且搞得我很心累。直到我发现基于域的操作方式,简直就像发现了新大陆一样。再后来,接触的多了后,发现Word中很多操作除了可以用菜单工具来完成以外,都可以使用域来实现,有兴趣的童鞋可以深入去研究,这里只是分享如何利用域来管理论文中的图表和公式编号。

我们采用的是x.y两级编码格式,第一级编号表征章节号,第二级编号表征元素在该章节中的序号。为了实现编号按章节自动编码,而且每一个章节开始,二级编号重新编号,我门需要在每一个章节开始处插入几个隐藏的域:

  • SEQ chapter \h: 当前章节号,\h表示该域是非显示内容
  • SEQ figure \r \h:图示编号,\r表示重新编号,下同。心细的童鞋肯定发现了,chapter域就没有\r的设置,因为其需要在整篇论文中递增
  • SEQ table \r \h:表格编号
  • SEQ equation \r \h:公式编号

下面以插入一个图示编号为例,其他类型的编号方法一样:
img

首先在需要插入编号的地方,插入一个域SEQ chapter \c表征当前章节号,然后输入间隔符.,接着是图示编号SEQ figure,完毕。后续如果插入了新的图示,其会自动编号,也可以手动刷新编号。由于添加域的情况很多,因此我绑定了一个自定义快捷键(InsertField),以快速调出插入域的窗口。

书签(Bookmark)

在论文中,经常会遇到交叉引用(Cross Reference),类似的有:如图3.2所示,这个编号3.2就是一个交叉引用。非常不建议手动输入引用编号,因为后续涉及编号更新的话,需要手动一一更新这些引用,而且存在疏漏不能保证全部都更新到,对应的工作量还是相当巨大的。因此,我们建议:

建议 3: 不要怕麻烦,利用书签实现交叉引用管理

那么如何使用书签实现交叉引用的管理?很简单,对每一个被引的元素添加书签,在引用的地方插入一个交叉引用。当被引用的元素编号更新后,该引用会同步更新。另外,关于书签的命名,建议按照自己的习惯统一命名,这样方便管理和插入。我采用的是类型-说明的方法,比如,如下所示的图示书签名为fig_phase_k, 供参考
img

论文中交叉引用的地方多了,插入书签会变得很繁琐,甚至你会觉得是不是可以偷懒一下。但是,如果你手动输入一个交叉引用,其实就相对于埋了一个地雷。当对应的引用更新了,这个交叉引用没有更新,排查起来非常困难。使用插入书签的方式,前期是麻烦一点,但是后期维护起来会很轻松,总的来说还是很有意义的。

多图片排版

为了增加论文的可读性,经常需要加入各种图示。一张图片,还好处理。当涉及到多张对比图需要水平布局时,如果没有一个好的方法,会让你分分钟叫爹妈。
img

建议 4: 建议采用表格来管理多张图片的排版

本文推荐采用表格来承载多张图片的排版,而且建议图示的标注也占据独立的一行,比如上图所示。为了快速的设定图片大小,我绑定了一个自定义快捷键(FormatDrawingObjectWrapThrough)以快速的将单元格中的图片居中显示。当图片添加完毕后,去掉表格边框即可。同样的,为了提升效率,我绑定了自定义快捷键(BorderNone)快速去掉边框。

多用快捷键

前面已经提到了,我们很多操作都绑定了自定义的快捷键。我建议大家按照自己的使用习惯,多设置一些快捷键,这样可以加快码字速度。额外还有一个福利,那就是省去了鼠标点击的动作,你的手指不会酸。这个真的很关键,尤其是对于一个经常要码字码代码的人来说。
img

下面我总结一下我经常用到的快捷键:

  • 插入1/2/3级标题(ApplyHeading1/2/3)
  • 将选中文本转成正文格式(NormalStyle)
  • 插入域(InsertField)
  • 更新域(UpdateFields)
  • 插入公式(InsertEquation)
  • 将当前文本转成公式(EquationNormalText)
  • 表格单元格内图片剧中(FormatDrawingObjectWrapThrough)
  • 去除表格边框(BorderNone)

那么多快捷键,需要你采用统一的组合规范,从而可以帮助你快速记忆这些快捷键。除此之外,也建议大家把常用的快捷键写在小便签纸上,贴在视线范围之内,一抬头就可以看到。这样可以保证在用的时候不至于卡壳。
img

绘图

关于论文中的绘图问题,那些需要写代码绘制的,这里不做展开介绍。这里主要分享下使用draw.io绘制论文中需要的图片。
img

draw.io是一个online的绘制工具,用过Visio的童鞋可以很快上手。相比Visio,其更轻量,个人认为也比Visio更好用。除了在线绘制图片外,建议大家下载桌面版使用,这样在没有网络的情况下也可以使用。 为了方便大家使用,其也提供了相应的Word插件,可以在编辑过程中直接导入draw.io中的画布。这样一来,可以规避画布导出图片文件然后导入到Word后图片分辨率低的问题。

整体使用体验是很不错的,至于具体的使用方法这里就不赘述了,大家可以按照流程安装。

文献管理

另外一个让我对Word很抵触的原因是参考文献管理。在写本科论文的时候,曾经深受其害。当时Word的功能还没有现在这么丰富,而且也是初次使用Word写那么长的文章,没什么经验。所有的参考文献都是一条一条手动敲进去的,包括:文献名称,类型,页码等等。这还不是最头疼的,最头疼的是如何让正文中的文献编号与参考文献目录中的对应,在插入了一条新的文献后还可以保持正确的编号顺序。如果处理的不好,牵一发就动全身,瞬间让你想合上电脑睡觉。后来,工作中也少有需要管理超过20篇参考文献的情况,也没有去做深入研究。直到自己再次面临写毕业论文,实在是绕不开这个坎后,开始沉下心去做调查研究。如果不解决这个参考文献管理的问题,越往后插入的文献越多,维护成本会呈几何级数增加,稍有不慎简直就是个灾难现场。功夫不负有心人,经过一番研究,发现了Mendeley提供的Word下面的一个管理文献Mendeley Cite的插件,甚是符合我的需求。大家有兴趣可以去Google一下Mendeley,其是学术出版大佬爱思唯尔(Elsevier)下面的产品,主要提供参考文献管理软件服务。除了Word下面的插件外,其也提供了相应的Mendeley桌面版程序搭配使用。
img

建议 5: 建议采用自动化软件来管理论文中所有的参考文献

通过使用Mendeley桌面版程序,大家可以根据自己的情况设置对应的文献样式,管理所有的参考文献。至于样式,其默认提供了很多标准体,比如:IEEE/Science/Nature样式,本人基于国标进行了少量修改,有需要可以直接导入使用(详见Bill的文献样式)。

至于如何管理文献,建议大家在GoogleScholar中找到对应文献,然后拷贝对应的bib信息到自己的.bib文件中。完了就可以直接使用Mendeley桌面版程序直接导入文献了。
img

接下来,在Word中需要插入文献的地方,使用Mendeley Cite的Insert Citation按钮直接插入文献即可。而且,很关键的一点,可以通过关键字或者bib中的Key直接索引你想要插入的文献。给大家展示一下常见的两种文献(会议论文[C]和期刊[J])的显示格式:
img

最后,在文章末尾需要插入参考文献书目的地方,点击Insert Bibliography就可以插入所有引用文献。这种一键生成目录的方式,有一种莫名的快感。强烈推荐大家去体验。

Ending

好了,以上就是本次想分享的所有内容。限于篇幅,不可能面面俱到。对于你关心的其他问题,欢迎评论区留言,我会尽力解答;外加上个人认知局限性,分享的一些技巧不一定都是最完美解决方案,也欢迎大家留言,分享你的建议。

最后,希望大家可以顺利毕业! 撒花!