Mendeley 是 Elsevier 公司出品的一款优秀的文献管理软件。它的桌面版本提供了一个 Word 插件,可以在使用 Word 写作的同时,插入参考文献,并可以在海量的格式库中选择一种投稿所需要的格式。最重要的是,当参考文献的顺序发生变化的时候,编号和文献列表都可以自动更新。对于提高写作速度很有帮助。

在成文之后,需要把自动更新的域代码去掉,保存为纯文本格式。然而, Mendeley 插件提供的导出功能只能导出成为 doc 格式。对于使用 docx 格式写作的用户来说,很多新特性在 doc 格式中并不支持。因此,把使用 Mendeley 编辑过的文档导出为 docx 格式需要额外的工作。

这里,我们换一个思路,不把 Mendeley 编辑过的文档进行导出操作,而是想办法在现有文档中直接把其变为纯文本。

在 Word 中, Mendeley 管理参考文献是通过“域”来实现的。 Word 为域提供了一个方法,就是解除关联: Unlink 。可以借助这一方法,把 Mendeley 创建的域解除关联。这里我们通过 VBA 宏来实现。

在编辑和使用宏之前要注意的是,用宏完成的修改操作无法撤销,解除链接后也无法恢复,如需要再次编辑参考文献需要手动编辑。因此,在以下操作之前,请先备份文档。

打开 Word ,在 Ribbon 中选择 视图 , 然后点击 。在弹出的对话框中,宏名 部分输入 UnlinkMendeley ,点击 + 号,创建一个新宏。这时会弹出宏编辑器。输入以下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub UnlinkMendeley()
'
' Unlink Mendeley Fields
'
'
Dim myField As Field
For Each myField In Word.ActiveDocument.Fields
Debug.Print myField.Type
Debug.Print myField.Result.Text
If (myField.Type = 81) Then
myField.Unlink
End If
Next
End Sub

以上代码中, Word.ActiveDocument.Fields 返回当前文档中的所有域。然后进行遍历, Debug 语句输出的是每一个 Field 的类型和内容。这里输出是为了查看 Mendeley 所创建的域的类型代码。在我的 macOS 的某版本 Word 中,类型编号为 81 。这样,再把所有类型为 81 的域都解除链接,即可。如果您使用的 Word 不同,可能结果会不一样,这时把 81 替换成 Debug 中输出的类型代码即可。

运行宏,可以发现, Mendeley 相关的域代码都变成纯文字了。