Word 的域、目录与交叉引用:为什么复制粘贴会毁掉一篇学位论文

目录不是文字。"如图 3 所示"也不是。它们是域——而一次纯文本往返会悄无声息地毁掉每一个。

HumanPen 团队

· 7 分钟

域到底是什么

Word 把某些东西存成指令,而不是存成字符。一个域是一小段程序:它保存一段代码,显示一个结果。

`{ TOC \o "1-3" }` 的意思是"把所有一到三级标题连同页码收集起来,显示在这里"。`{ REF _Ref12345 }` 的意思是"显示书签 _Ref12345 那个对象的编号"。`{ SEQ Figure }` 的意思是"这是序列中的下一个图"。你看到的是图 3;文件里存的是一条解析结果为 3 的指令。

这就是为什么在中间插入一张图时后面的图号会自动重排,也是为什么按 F9 目录会更新。那些数字不是任何人打上去的。

纯文本往返对它们做了什么

把文档从 Word 复制到文本框里,再把结果粘回来——每一个域都变成了它最后显示的那个值,一段死文字。指令没了。

危害比看上去大,因为粘贴的那一刻文档看起来完全正确。数字都在,只是它们不再连着任何东西。

  • 目录冻结。 它显示的是改写之前的标题和页码。此后任何编辑都会让它无声地过期,因为已经没有域可更新了。
  • 图表编号不再连续。 插入一张图,它后面的全部保持旧编号;删掉一张,就留一个空号。
  • 交叉引用变成错误的文字。 "如图 3 所示"现在只是这几个字,指向现在恰好排第三的那个东西——或者什么也不指。
  • 脚注可能被挪位,或干脆被转成普通文字,而 Zotero、EndNote 插入的引用会丢掉域代码,这意味着参考文献表再也无法由它们重新生成。

最后这条和上一篇会叠加:一份引用域已经被转成纯文本的稿子,文献管理器根本无法再为它重排格式,因为管理器已经不知道每条引用对应哪个条目了。

这为什么决定了长文档该怎么处理

一篇 1,500 词、没有任何域的 essay,上面这些都无所谓。但对一篇学位论文,它决定的是几个月的工作能不能保住。

任何"接收粘贴文本、返回粘贴文本"的工具都会造成这个结果,无论它的改写做得多好——因为结构是丢在纯文本这一趟往返上的,不是丢在改写上的。

这正是我们处理文件本身而不是处理它的文字的原因:标题层级、目录域、图表编号、脚注和参考文献表都是结构对象,它们不参与改写。处理完在 Word 里照常更新域,编号完好。

几个实用检查

  • 开始之前先切换域代码显示。 Windows 版 Word 按 Alt+F9,Mac 版按 Option+F9,会把每个域显示为它的代码。这是看清文档里到底有什么的最快方法。
  • 提交前更新域。 Ctrl+A 然后 F9 会刷新全部。如果这样做之后目录没有变化,那它已经不是域了。
  • 下载回来的文件用同样方法检查。 任何工具动过你的文档之后,切换域代码,确认目录和图表引用仍然是指令而不是文字。
  • 保住引用插件的域。 Zotero 里的"取消链接引用"对那个副本是不可逆的——它是故意把每条引用转成纯文本。而一次纯文本往返在不问你的情况下做了同样的事。

继续阅读