Microsoft Word中这个无法复制的神秘段落标记是什么?

mac*_*ach 2 windows-7 special-characters microsoft-word microsoft-word-2013

在Windows 7上的Microsoft Word 2013中,我一直遇到一个奇怪的段落标记,无法正确复制粘贴,从而导致各种问题。不幸的是,我不知道如何生成这个神秘段落标记,但这里有一个包含它的文件:无法复制的神秘段落标记.docx.zip(一个 DOCX 文件再次压缩以提高准确性)。

当我让 Microsoft Word 显示所有非打印字符时,神秘段落标记显示为正常的 pilcrow (¶) - 与常规段落标记完全一样。但是,它的行为很奇怪:

  • 当我选择整个文本并将其复制粘贴到记事本时,它就会被一个普通的空格字符替换。
  • 神秘段落标记可能出现在 DOCX 或 DOC 文件中。当我将文件另存为 RTF 并用 MS Word 重新打开它时,我会得到一个空格字符。当我将文件保存为 TXT 时,它会被转换为普通的换行符。
  • 当我使用 MS Word 的替换对话框将所有段落标记(“^p”)替换为其他内容时,神秘段落标记将不会被替换。这样,它们类似于任何 MS Word 文件末尾的强制段落标记。
  • 当我用其他应用程序打开文件时,大多数会将神秘的段落标记转换为空;例如,Apple 的 TextEdit.app 或旧的 Microsoft Office Word Viewer:

    文字编辑截图

    但有些人会将其转换为普通的换行符;例如 LibreOffice:

    LibreOffice 屏幕截图

这个神秘的段落标记是什么?我该如何预防?

小智 5

查看您的示例 .docx,“神秘段落标记”由一个<w:cr/>元素表示,该元素在 ISO OOXML 标准(例如 ISO29500-2012 第 1 部分)的第 17.3.3.4 节中描述为 cr(回车)。

那里的摘要描述是“运行内容中回车的行为应与具有空类型和清除属性的中断字符相同,它将结束当前行并找到下一个可用的行以继续。”

换句话说,它应该表现得像一个硬换行(实际上在这样的标记之后你不会得到正常的段落间距),但 Word 显然以与段落标记相同的方式显示它。通常,段落标记会显示在 (Paragraph) 元素的末尾,也许在其他一些情况下。

一个问题是你如何<w:cr/>进入你的文档。我希望有多种方法,但您当然可以这样做的一种方法是使用“查找/替换”将字符替换为“ ^13”(未选中通配符选项)。

摆脱它们并不简单,因为如果您尝试用某些东西替换 ^13,Word 会替换所有段落标记。如果您将神秘段落标记复制/粘贴到“查找内容”框中,Word 将替换所有空格。即使在 VBA 中,它们似乎也显示为“13”个字符,不易与普通段落标记字符区分开来。

但是,作为解决方案的第一次尝试,以下 VBA 似乎适用于最新版本的 Windows Word:

Sub replaceCRinDocBody
' Replaces paragraph marks that correspond to <w:cr/> Elements 
' by a normal paragraph mark
' This only processes the document body, not headers/footers.
Dim l as Long
With ActiveDocument.Content.Characters
  For l = 1 to .Count
    If AscW(.Item(l)) = 13 Then
      If Instr(1,.Item.WordOpenXML,"<w:cr/>") > 0 Then
        .Item(l).Text = vbCr
      End If
    End If
  Next
End With
End Sub
Run Code Online (Sandbox Code Playgroud)