如果两个版本都是 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 的免费开源比较工具,可以比较两个文件或两个文件夹。
- 打开 WinMerge,选择“文件”,然后选择“打开”。
- 左侧选择旧的 Markdown 文件,右侧选择新的文件。要比较整个文件夹,就改为选择这两个文件夹;WinMerge 会列出内容不同的文件,以及只在一侧存在的文件。
- 改动的行会高亮显示, 每行中改动的词也会标出。从一处差异跳到下一处,每处都完整读一遍。
在 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 比较显示的是文字。它不显示字体、颜色、页面布局、签名、印章或图片的变化。如果这些很重要,请逐页比较原件。
比较能告诉你改了什么,但不能告诉你改动意味着什么。对于合同,请完整阅读改动过的条款,签字前就任何没有把握的改动咨询律师。