如果两个版本都是 Word 文件,就用 Word 的“比较”功能。如果其中一个是 PDF,或者你有一整个文件夹的版本,就把两者都转换为 Markdown,再用 WinMerge 比较文本文件。它会标出每一处改动的行,以及行内改动的词。

本指南适合这样的人:收到返回的合同、制度或规格说明,对方说只做了“几处小修改”,而你需要看到全部修改。

深色桌面上并排放着两叠纸,右边那叠有几行用淡紫色标出,中间放着一支淡紫色铅笔。
两个版本,并排对照。

两个 Word 文件:使用 Word 的“比较”功能

Word 自己就能比较两个 .docx 文件。在“审阅”选项卡中选择“比较”,然后选择 比较文档的两个版本(法律黑线)。选择原始版本和修订版本。Word 会打开第三个文档,以修订的形式显示每一处差异,两个原文件保持不变。

Word 还允许你选择按词还是按字符显示更改,以及是否包括格式和批注。对于两个 Word 文件,不需要其他工具。

PDF 或文件夹:比较 Markdown 副本

Word 的“比较”功能适用于 Word 文档。其他情况需要别的方法:

  • 你发出的是 Word 文件,收回的却是 PDF。
  • 两个版本都是 PDF,或者其中一个是签过字的扫描件。
  • 一套文档的新版本到了,你需要知道哪些文件有变化。

先把两个版本都转换为 Markdown,再比较文本。Markdown 以纯文本保留标题、列表和表格,因此比较工具可以按章节对齐两个版本。

将旧版本和新版本分别放在不同的文件夹中,例如 v1 和 v2,两个文件夹中的文件名保持相同。在 MD Factory 中添加这两个文件夹。每个 Markdown 文件都保存在原文件旁边,所以之后可以逐个文件比较两个文件夹。两个版本要用同一个应用转换:不同的转换器对同一段文字的排列方式不同,这些差异会显示为修改。

扫描件会在你的电脑上进行 OCR 识别。OCR 错误看起来像修改,所以请先阅读 关于转换噪声的部分 ,再相信涉及扫描件的比较结果。

在 WinMerge 中比较副本

WinMerge 是一款适用于 Windows 的免费开源比较工具,可以比较两个文件或两个文件夹。

  1. 打开 WinMerge,选择“文件”,然后选择“打开”。
  2. 左侧选择旧的 Markdown 文件,右侧选择新的文件。要比较整个文件夹,就改为选择这两个文件夹;WinMerge 会列出内容不同的文件,以及只在一侧存在的文件。
  3. 改动的行会高亮显示, 每行中改动的词也会标出。从一处差异跳到下一处,每处都完整读一遍。

在 Markdown 中,一个段落通常是一整行长文本。其中一个词改动时,整个段落都会高亮,而段落内的词语标记会显示实际的修改。

如果空格的差异造成干扰,可以在 WinMerge 中设置 忽略空白更改.

用 Git 逐词比较

如果安装了 Git,它可以在任何仓库之外比较两个文件,并逐词显示修改:

git diff --no-index --word-diff v1/contract.md v2/contract.md

删除的词显示在 [-square brackets-] 中,添加的词显示在 {+curly braces+}中。 git diff 文档 列出了各个选项。这种输出便于粘贴到审阅笔记或邮件中。

区分真正的修改和转换噪声

并不是每一处高亮的差异都是修改。在处理某处修改之前,请在两份原始文档中都找到它。常见的噪声:

  • 扫描件的 OCR 误读:0 和 O、1 和 l、数字中漏掉的逗号。误读的数字也可能掩盖真正的修改。
  • PDF 中的换行和页眉在两个版本中位置不同。
  • 两个文件中的表格排版不同。

数字、日期、金额、姓名和期限,即使比较结果显示没有变化,也值得在原件中再核对一次。

文本比较看不到什么

Markdown 比较显示的是文字。它不显示字体、颜色、页面布局、签名、印章或图片的变化。如果这些很重要,请逐页比较原件。

比较能告诉你改了什么,但不能告诉你改动意味着什么。对于合同,请完整阅读改动过的条款,签字前就任何没有把握的改动咨询律师。