使用git来跟踪Word文档

前言

最近在写毕业论文初稿,为了方便(以及自己并不是很熟悉LaTeX o(╯□╰)o)使用了Microsoft Word。但是总是有很多地方要修改,改来改去麻烦得要死,就想用git来跟踪一下,省的出现“第一版”、“第二版”“第一版第一版”……

下面是正题,主要说一下我们的操作步骤。如果你并不熟悉git,请移步廖雪峰的官方网站 – Git教程。除此之外,我还推荐你有一个GitHub的账号,这样你就可以推送到远端,如果你没有GitHub的账号,可以在这里Sign up(也就是注册)一下。

我们需要的材料:git、pandoc。

安装git与pandoc(如果已经有了,可以跳过这一步)

安装git

如果你使用Windows,那么需要从这里下载最新版的git,安装过程可以看这里;如果你使用Linux,那么可以从你的发行版的仓库直接安装。

安装pandoc

至于pandoc,如果你使用Window,可以从这里下载2.2.1版本的pandoc,安装的时候,一直保持默认选项即可;而如果你使用Linux,在很多发行版(包括Debian、Ubuntu、Slackware、Arch、Fedora、openSUSE以及gentoo)的软件仓库已经包含了,所以可以直接从软件仓库安装。如果你的软件仓库中没有,则可以从源码安装,这里说明了如何从源码安装

配置git 极其重要

打开git的配置文件(在Linux上,我们可以使用~/.gitconfig,也可以使用/etc下的config;在Windows上,我们需要找到安装目录,进入目录下的mingw64\etc\,找到gitconfig文件(这里推荐使用Notepad++如果没有的话,可以从这里下载64位的7.5.6版本的Notpad++))。我们打开我们找到的配置文件,打开之,在里面加上下面的一段话(请把中文引号替换为英文引号):

[ diff “pandoc”]
    textconv = pandoc --to = markdown
    prompt=false
[alias]
    wdiff = diff --word-diff = color --unified = 1

配置工程文件 极其重要

在配置了git之后,我们还需要配置我们的工程文件,这一步比较简单。打开我们的工程目录(也就是我们要跟踪的目录),新建一个”.gitattributes”文件(Linux或Mac下是这样,如果在Windows下,文件名应该是”gitattributes”,区别在于Linux和Mac下的文件名前有一个点,而Windows下的文件名没有)。然后打开我们新建的这个文件,写入下面的内容:

*.docx diff = pandoc

当然,如果你要跟踪其他格式的文件,需要把“docx”改成你要跟踪的文件,当然如果你要添加多种文件类型,按照上面的格式多加几行即可。
实际上可以跟踪的文件类型取决于pandoc能够支持的文件类型,在pandoc官网上,提到pandoc支持XHTML、HTML5、HTML、docx、ODT、XML、PPT以及EPUB等等,可以从这里看到pandoc可以支持的文件类型。

结语

实际上我们可以使用git跟踪很多文件,甚至Altium Designer的文件也可以(我最近做毕设,需要开板,这个也是我最近摸索出来的),不过我们需要做一点小修改,在保存PCB文档或SCH文档的时候,我们需要保存为文本文档格式(这样git才可以跟踪更改(因为git是依靠diff来跟踪修改的,而diff只能跟踪文本文档的变动)),而工程文件本身就是文本形式,所以无需变动。

其他类型的文件,大家也可以尝试一下。

使用数据库找论文引用的举例

我们往往需要使用各大数据库来查找论文,也会通过数据库来找引用。下面我就通过一个小例子来说明如何来找引用,以google scholar为例。

  1. 打开google scholar,搜索我们要找的论文
  2. 在搜索结果列表中我们可能会看到很多相关的结果,找到与我们要找的文章最相近的结果
  3. 在它的下面会有一个引号图标,这表示引用,点击它就会出现一个对话框,显示了引用的细节。在对话框的底部,有“BibTex”、“EndNote”等多种格式,如果我们使用latex,那么我们就需要BibTex格式。
  4. 点击我们需要的格式(以“BibTex”为例),就会弹出一个包含了引用细节的页面,我们把页面中的内容保存为相应的格式(此处为.bib格式)就可以了。

在LATEX中使用引用的不错误的姿势

最近写论文,开始使用Latex(听说这个很装X)。

先说一下在Latex中插入引用(不出错)的方法

  1. 首先在你写的文章的开头使用上
    \usepackage[numbers, sort]{natbib}
    \bibliographystyle{authordate1}
    

    第二行表示要使用的引用的格式,常用的有authordate1、IEEEtran等。你可以把上面的authordate1替换成你需要的格式。

  2. 然后我们要搜集素材,也就是从各大数据库(例如万方、知网、google scholar、百度学术等)找到我们所需要引用的文献。这些数据库往往都提供了bib格式的引用(可以到这里找到例子),bib格式通常长成这样:

    @article{Wei06,
        title={红外结构光人脸三维面形测量},
        author={魏永超 and 苏显渝},
        journal={激光與紅外},
        volume={36},
        number={8},
        pages={696--698},
        year={2006},
        publisher={激光與紅外雜誌社}
    }
    

    我们在把从数据库中找到的内容放到一个后缀名为“.bib”的文件中,bib文件中可以放置多个这样的条目,然后把这个文件放到方面我们找到的地方,例如与tex在同一个目录中。文件名不推荐使用中文,可能会有潜在的问题

  3. 在我们的文章的末尾(\end{document}之前)添加

    \bibliography{“文件路径”}
    

    这里的文件路径可以使用相对路径,也可以使用绝对路径。这个文件路径指的是刚刚我们创建并编辑的bib文件的路径。举个例子,我创建了“ref.bib”,然后放在了tex相同的目录中,那么我的tex文件的局部就像下面这样:

    \clearpage
    \bibliography{./ref}
    \end{CJK}
    \end{document}
    

    上面第二行便是重点,在写文件路径的时候,不要把文件的后缀名也加上。这样做的效果就是,在文章的为为出现了“References”。

  4. 然后就是在文章的合适的位置添加引用了。但是在这里我需要先说一下bib文件。
    bib文件的格式在2中已经介绍过了,我们需要关注的重点是其中的“Wei06”,这个Wei06便是关键字,所谓关键字是用来帮助bib和latex寻找引用条目用的。我们可以修改关键字为方便我们使用的形式。例如我的bib中,原来的关键字是“魏永超 06 红外结构光人脸三维面形测量”,但是为了方便,我就把它改成了“Wei06”。在你的bib中,关键字的修改是任意的。
    下面再说在文章中添加引用的方法。首先找到需要添加引用的位置,在后面加上

    \cite{keyword}
    

    其中的keyword就是刚刚我们在bib文件中给每个条目设置的关键码。在下面举个栗子:
    例如我的文章是这样的:

    从本质上看,从长期上看,从战略上看,必须如实地把帝国主义和一切反动派,都看成纸老虎。从这点上建立我们的战略思想。
    

    而其引用来源是《关于帝国主义和一切反动派是不是真老虎的问题》,那么我就需要这样写:

    从本质上看,从长期上看,从战略上看,必须如实地把帝国主义和一切反动派,都看成纸老虎。从这点上建立我们的战略思想。\cite{Zhilaohu}
    

    而在bib文件中,《关于帝国主义……》的关键字为“Zhilaohu”。