将Microsoft Word与Git配合使用

2020-08-28 18:44:14

撰写期刊文章的主要挑战之一是跟踪版本-随着文档的进展,您创建的两个版本都不同,并合并您的合作者所做的更改。对于大多数学者来说,Microsoft Word是默认的书写工具,在这方面它既很好也很不好。非常好,因为跟踪更改功能可以很容易地查看自上一个版本以来发生了哪些更改,以及是谁进行了更改。非常糟糕,因为此功能是围绕将所有内容保存在单个Word文档中而构建的,因此一次只能有一个人处理手稿。这通常意味着通过电子邮件发送手稿,并非常小心不要混淆不同版本的文档,这需要创造力。

克服这些挑战的方法是a)将Word文档集成到协作工具(如Sharepoint和Office 365)或文档共享服务(如Dropbox和Google Docs(如果您仅为此而使用)中),或b)完全使用不同的创作工具。如果这两种方法对您都不起作用,您还有第三种选择:使用版本控制系统GIT。

Git是一款帮助跟踪文件更改的软件,这样您就可以在以后调用特定版本。Git通常用于跟踪软件源代码的更改(最初是由Linus Torvalds于2005年为Linux内核开发开发的),但实际上,Git可以用于任何需要跟踪版本随时间推移的文件。Git是在您的计算机上本地运行的开源软件,因此请继续使用Git开始跟踪对您的手稿(或其他复杂文档)的更改。任何时候您想要存储一个版本,都可以使用少量描述和一个可选的标记进行GIT提交。

这种方法并不理想,因为git在编写时考虑到了文本格式的源代码,例如无法理解Word文档的两个修订版之间发生了什么变化。有些人会告诉您永远不要在版本控制系统中存储二进制文件,但不要听他们的。相反,给git一个将word文档转换成纯文本的工具,git就会很高兴地告诉你两次修订之间发生了什么变化。有几个工具可以做到这一点,但从本月早些时候开始,Pandoc就可以读取docx格式的Word文档。执行以下操作以使Pandoc将Word文档转换为降级,并按Word而不是按行比较修订(这样更有意义):

主文件夹中的#.gitconfig文件[diff";pandoc";]textconv=pandoc--to=markdown Prompt=false[alias]wdiff=diff--word-diff=color--Unified=1。

然后,您可以使用git wdiff reportant_file.docx查看更改(删除内容显示为红色,插入内容显示为绿色),或者使用git log-p--word-diff=color reportant_file.docx查看随时间推移的所有更改。

虽然您现在可以跟踪Word文档的修订并查看更改,但您还希望能够将Word文档的不同版本合并在一起,以便您和您的合作者可以并行处理手稿。Git不能将二进制文件合并在一起,因此您需要首先将Word文档转换为Git能够理解的格式。就像在前面的示例中一样,我们可以使用Pandoc来实现这一点,并使用markdown作为文本格式。这也适用于HTML或LaTeX,但是标记的简单性使其更适合不知道这些格式标记的版本控制。

Git在软件开发人员中如此流行的原因之一是它是一个分布式版本控制系统,而不是像Subversion这样的集中式系统。这意味着您可以在本地跟踪计算机上的所有修订,但仍然可以与其他用户同步您的修订。GitHub是一个流行的服务,它促进了这种同步,并在上面添加了一些很好的功能。因此,与你的合著者合作的一种方式是为你的手稿建立一个Github存储库(公共或私人),并以降价格式存储手稿的主版本。您可以使用Pandoc在此标记格式的主版本和Word文档之间来回转换,而不是直接处理主版本,并继续使用Word作为创作工具。Rakali是我上周发布的Pandoc工具,可以帮助实现文档转换的自动化。GitHub有许多功能来促进协作,这些功能可以在这里使用,例如用于讨论和任务管理的Github问题。

在上面描述的工作流程中仍然有一些粗糙的地方(例如,仅部分支持Word跟踪更改),但使用Microsoft Word和GIT进行协作是一种有趣的方法。当然,这个工作流程还可以得到增强,以包括用LaTeX或Pandoc支持的其他格式之一编写的作者。使用markdown的一个很好的副作用是,Github会自动为文档呈现一个网页(如果没有额外的努力,它不会对HTML执行此操作)。

2013年6月举行的科学降价研讨会的重要成果之一是决定了一个名称-学术降价-以及一个简短的定义:

由Disqus提供支持的博客评论