用vscode搭建丝滑BNU毕业论文写作平台

很久之前就有搭建一个丝滑的毕业论文写作平台的构想了,但是直到最近才有时间写出来。毕业论文同数学建模竞赛论文一样都有着较为严格的格式规范,具体的格式要求可参阅长达10页的《师教培养〔2020〕6 号-北京师范大学本科生毕业论文写作规范》,因此如果能用上提前定义好格式的模板,专注于查阅文献与内容创作,并且让论文里的数学公式和图表漂亮一些,将是一个较为不错的选择。

下载BNU图书馆官方模板

北京师范大学图书馆学位论文服务系统常用下载页面中,找到研究生学位论文Latex参考模板,下载得到zip源文档,下载到本地后就会发现这个模板其实是学士/硕士/博士通用的一个模板,是从清华大学 TUNA 协会制作的清华大学学位论文模板修改而来的。

基本配置

在电脑已经能够用vscode编译的前提下(这一点如未配置可参考网上的相关文字教程视频),解压后用vscode打开整个文件夹,开始对模板文档进行基本的配置。

首先推荐过一遍官方的说明文档bnuthesis.pdf的内容,按照相关提示进行操作即可。

主要步骤与注意事项:

  1. 新建:按照说明文档中3.3 编译论文部分的提示,建议另行复制一份主文档并重命名(例如main.tex),并且/data文件夹中对应各章节的tex文件的首行也更改!TeX root后相应的文件名;

  2. 改头:bnusetup.tex文档里填写自己的基本信息;

  3. 换面:更换封面,在你自己主文档的\documentclass部分根据自身情况调整学位参数;

    默认为学术硕士:

    1
    2
    3
    4
    5
    \documentclass[degree=master]{bnuthesis}
    % 学位 degree:
    % doctor | master | bachelor
    % 学位类型 degree-type:
    % academic(默认)| professional

    封面长这样:

    如果是本科生,使用下面修改后的参数即可:

    1
    2
    3
    4
    5
    \documentclass[degree=bachelor]{bnuthesis}
    % 学位 degree:
    % doctor | master | bachelor
    % 学位类型 degree-type:
    % academic(默认)| professional
  4. 编译:如果电脑是Windows,推荐直接用latexmk命令在终端编译一次即可,如果你的主文档叫main.tex,要编译输出相应的pdf,则基本格式为

    1
    latexmk main.tex

    若要清理编译生成的辅助文件,输入

    1
    latexmk -c

    如果是本科生,在修改\documentclass参数后用上述方法编译一次,可以看到封面瞬间焕然一新,与官方word版的封面(如下图)如出一辙(可能比word版更清晰一些🤔):

    至此,模板基本的配置就完成了,下面可根据个人需要选择性地添加部分功能(起飞✈️)。

进阶配置

以下部分功能的实现可能需要一点时间(当然全都是选择性的,不是必须),这里只简单介绍基本功能及配置思路。

智能补全:Github Copilot

用vscode的一大好处就在于这个接入了GPT-4的插件Github Copilot,虽然其本质上是一个代码补全工具,但是其强大的功能使得在编写tex文档时一样能够丝滑输出,它会根据上下文不断学习,自动推测出光标处要写的公式及文字😋

Github Copilot的订阅费用为$ 10/月,但是在GitHub中用edu邮箱完成学生认证后即可免费使用,具体步骤请自行Google

云同步:git

写论文过程中及时备份存档毫无疑问是一个很重要的功能,并且有时会同时产生多个版本,形成不同的分支,要从当前版本切换到不同分支,又或是不小心删除了当前的内容需要回退到前一个版本,这个时候git就出现了。(如何做好 Word 文档的版本管理?两种方法10个工具 - 知乎

实现云同步的工具有很多,适合自己的才是最好的。于我而言,对数学公式的支持最为重要,因此Word或者其他云文档在这方面就有些欠缺。用git进行版本控制与Word和其他云文档主要有以下区别:

工具 对数学公式的支持 对网络环境的依赖
git 利用tex/md文档书写,本质上是代码,完美支持✅ 需要同步(push)的时候才需要网络,其余时间都在本地编辑🥰
Word 内置的office math不太好用,不过安装AxMath插件后还行❓ 通过Onedrive同步,但问题在于网页版和本地版格式不太一样🤔,而且不太稳定
其他云文档 有些可以,但还是略显麻烦,不够强大❓ 需要实时网络🌐

用vscode的另一大好处就是可以很方便地利用git把tex文档接入GitHub进行同步,从而及时备份并进行版本控制(当然Overleaf上也有这个功能,不过价格有点小贵)。具体介绍可以参见这个up主的视频,还不错:《Git + GitHub 10分钟完全入门》

这里我选择了gitlens将版本记录可视化,当然也有其他很多git图形界面,都做得很不错,可按自己喜好选择(只要GitHub账号绑定了学生包,那么就可以直接用此GitHub账号登录获取GitKraken Pro🤩)。gitlens的界面长这样:

参考文献管理与引用

这里推荐采用vscode+zotero+坚果云的方式完成智能引用和参考文献云同步,用实现,具体引用格式的选择请参见说明文档的4.7.1 参考文献部分,相关配置方法可参考以下文章:

  1. VS Code + LaTex + Zotero 写作毕业论文 - 知乎 (zhihu.com)
  2. 坚果云使用 Zotero 配置过程详解 | 坚果云帮助中心 (jianguoyun.com)

小工具与个性化

Shift IM for Math

官方介绍:Automatically change IME condition. Make it easier to input in latex and markdown file. Without AutoHotkey.

简而言之就是自动识别$之间的数学公式环境自动切换中英文输入。

Office主题套装

使用这个主题(非官方)会给人一种在编辑Office的错觉,其中Word主题效果如下:

NBARealTimeScore

官方介绍:实时获取当天NBA比赛比分,并显示在vscode下方状态栏左侧;更可以观看实时文字直播,以及赛后数据统计。你可以边搬砖边关注NBA。

简而言之就是摸鱼搬砖两不误🤣