MS Word。自动更新图片中的标签

MS Word。自动更新图片中的标签

我认为这超出了 MS Word 的范围,但希望有人能帮忙。我偶尔需要写专利文件。它们需要单独的图形文档。这些图通常是框图,要求每个块都按图号编号。例如,(见附件)图 1 将显示标记为 11、12、13... 1N 的块。图 2 将有块 21、22、23... 2N 等。

如果插入新图形,则下面的所有图形编号都需要增加一,而且这些图形中的标签也需要增加(21 --> 31、31-->41 ... XN-->(X+1)N )

有没有办法将标签编号链接到图形编号以便自动进行这些更新?

我到处都搜索过了,除了更新图片标签外,没找到任何与此类似的东西。谢谢。

程序框图标签

答案1

我对此进行了一些编辑,因为我想到了一种更简单的方法,只要您的“专利文件”很小,这种方法就可能有效,而 JeeHaa 现在已经发布了一个答案,其中包含我考虑的另一种主要方法。我没有介绍这一点,因为如果您有多个图表文档,它可能就没那么有用了,而且我仍然不确定那里的情况。

如果你有一个很小的“主文档”,解决​​大多数问题的可能方法是使用

  • INCLUDETEXT 字段用于在每个图表文档中包含主文档的整个文本

  • 隐藏主文档文本的机制

  • REF 字段用于引用图表编号

那么我所说的“小文档”是什么意思呢?嗯,我真正的意思是文档足够小,以至于 Word 不需要花很长时间来重新包含文档并重新进行分页。

例如,假设您的主文档名为 c:\xxx\maindoc1.docx,并且您正在插入没有章节编号的标准图形标题。

这意味着 Word 将使用单个字段代码插入图形编号,如下所示:

{ SEQ Figure \* Arabic }

(您可以在 Windows 桌面版 Word 中使用 Alt-F9 在“字段代码”视图和“字段结果”视图之间切换。您可以通过选择字段代码并按 F9 来更新其结果;您可以使用 ctrl-F9 插入一对特殊的“字段代码括号”{ })

要将 maindoc1 的文本包含在图表文档中,您可以单击图表文档主体的开头,然后

  • 使用 ctrl-F9 插入一对特殊字段代码括号 { }

  • 在它们之间,输入

     INCLUDETEXT "c:\\xxx\\maindoc1.docx"
    

所以你看

    { INCLUDETEXT "c:\\xxx\\maindoc1.docx" }

(或者,你可以访问插入选项卡->文本组->对象下拉菜单->从文件插入文本。找到并选择 maindoc1.text。然后点击插入按钮并点击插入为链接选项。)

现在选择 INCLUDETEXT 字段并使用 ctrl-F9,这样你就有了

    { { INCLUDETEXT "c:\\xxx\\maindoc1.docx" } }

然后SET F在第一个之后输入{

    { SET F { INCLUDETEXT "c:\\xxx\\maindoc1.docx" } }

选择字段并使用 F9 更新它们。使用 SET 意味着您已包含文档文本等,但实际上它是不可见的。

作为如何引用图号的示例,在主文档中,选择第一个图号,然后使用功能区主页选项卡->链接组->书签添加“覆盖”该编号的书签。您必须为其指定一个唯一的名称。虽然在名称中使用序列可能会造成混淆,但使用类似名称可能是最简单的方法。但也许可以使用 Fig00100 之类的名称。

要引用您的图号,请在您的图表中使用字段代码

{ Fig000 }

然后,您可以输入 1、2、3 等来提供形状编号,如我在下面的原文中所述。您可以切换到文件->打印,然后返回以更新这些数字。

您仍然必须打开每个图表文档并更新所有字段等,以确保您拥有正确的数字。

使用 INCLUDETEXT 字段而不是 LINK 字段的一个优点是 Word 不会破坏嵌套在 INCLUDETEXT 字段内的字段。根据所使用的文件系统,这可能意味着您可以避免将文档移动到另一个文件夹,然后 INCLUDETEXT 字段指向错误位置的问题。

如果图表文档与主文档位于同一文件夹中,则要执行此操作,而不是

{ SET F { INCLUDETEXT "c:\\xxx\\maindoc1.docx" } }

使用以下

{ SET F { INCLUDETEXT "{ FILENAME \p }\\..\\maindoc1.docx" } }

这是我最初的回答的开头 有几种粗略的方法您至少可以尝试一下。所有方法都使用 Word 字段,并且依赖于您可以将字段插入图形对象(形状的文本区域或文本框)的事实。因此,您必须在 Word 中创建和维护图表,这种方法才有可能奏效。

让我们从一个例子开始。假设您的“主文档”(包含图号)位于 c:\xxx\maindoc1.docx 中。我假设您使用标准 Word 图号功能对图进行编号,并且为了简化起见,您没有将“章节编号”与图号一起包含。我假设您现在有一个“图表文档”,并且您从一个空文档开始。

这意味着 Word 将使用单个字段代码插入图形编号,如下所示:

{ SEQ Figure \* Arabic }

(您可以在 Windows 桌面版 Word 中使用 Alt-F9 在“字段代码”视图和“字段结果”视图之间切换。您可以通过选择字段代码并按 F9 来更新其结果;您可以使用 ctrl-F9 插入一对特殊的“字段代码括号”{ })

首先,选择主文档中的第一个图号,然后使用 ctrl-C 复制它

在图表文档中,单击某个段落(不是图表),然后使用 Alt-Ctrl-V(或主页选项卡->剪贴板组->粘贴下拉菜单->选择性粘贴) 打开“选择性粘贴”对话框。

点击粘贴链接按钮,选择无格式文本确保显示为图标复选框未选中。然后单击“确定”。

您应该看到图表文档中的图形编号的副本,或者类似如下的字段代码:

{ LINK Word.Document.12 "C:\\xxx\\maindoc1.docx" "OLE_LINK1" \a \t }

整个过程的关键在于 OLE_LINK1 是 Word 在主文档中创建的书签的名称,用于“覆盖”您刚刚复制的图号。因此,如果您在主文档中刚刚链接到的图号之前插入新的图号,书签将保持不变,因此 LINK 链接到相同的位置。但是,当您更新主文档中的图号,然后更新图表文档中的 LINK 字段时,图表文档中的编号会更新。

如果你想要查看 Word 插入这些书签的位置,你可以

  • 查看文件->选项->高级->显示文档内容->显示书签。然后 Word 会在每个书签区域周围显示一对灰色的 [ ]

  • 使用插入->链接->书签查看文档中的书签列表。选择一个书签并单击转到以选择书签区域。0

要检查到目前为止发生的情况,请返回主文档并在原始图号之前插入一个新的图号。然后使用 ctrl-A、F9 更新图号(如果需要)。

返回图表文档。您应该看到 LINK 字段结果已更改为 2(因为\aLINK 字段中显示“自动更新链接”)。但如果没有,请选择该字段并按 F9 更新其值。您应该看到“2”。

现在在 LINK 字段下方插入一个段落,并在图表文档中插入一个图形形状。(例如,一个矩形)。图形的“锚点”位于 LINK 字段之后,这一点很重要。

右键单击该形状,然后单击Edit Text以在形状中间显示一个文本区域。在其中复制/粘贴 LINK 字段,然后在其后立即输入数字 1。查看字段结果,您应该会看到“21”

在主文档中,在第一个数字之前插入另一个数字,并更新其中的字段代码。现在您应该在图表文档中看到数字 3 和 31。

回到您的示例图,这意味着您可以将每个形状的数字放在没有边框的矩形形状(或文本框)中,并获得相当好的自动更新。

不幸的是,存在许多问题,包括

  • LINK 代码包含主文档的绝对路径+名称(反斜杠加倍)。移动主文档,您可能会发现必须修改所有这些路径。(不幸的是,您不能将路径分配给书签,例如 { mypath },然后在 LINK 字段中使用 { mypath } - Word 只会破坏 LINK 字段中的嵌套字段。

  • 更新大量 LINK 字段会花费 Word 很长时间。我认为最好避免这种情况。

因此,我认为最好不要直接使用 LINK 字段,而是使用某种对 LINK 字段的引用。如果图号始终是整数,我认为最简单的方法是使用 SEQ 字段。因此,选择您选择的第一个链接,然后

  • 使用 ctrl-F9 将其括在一对字段括号中,这样你就有了

    { { LINK Word.Document.12 "C:\\xxx\\maindoc1.docx" "OLE_LINK1" \a \t } }
    
  • 添加文本,使字段如下所示:

    { SEQ F \r{ LINK Word.Document.12 "C:\\xxx\\maindoc1.docx" "OLE_LINK1" \a \t } }
    
  • 选择该 SEQ 字段并更新它

  • 在形状中,删除 LINK 字段并将其替换为

     { SEQ F \ c }
    

所以形状包含

    { SEQ F \ c }1

当您使用 Alt-F9 查看字段结果时,您应该看到 3 和 31

现在返回到主文档并在开头插入另一个图号。

返回图表文档。这一次,您将看到两个数字都没有改变。

这是因为虽然 LINK 字段已经更新,但 SEQ 字段尚未更新。

因此,使用 ctrl-A 选择文档并按 F9。我认为您现在会看到第一个 SEQ 字段将显示 4,但形状中的字段仍将显示 3。这是因为当您执行此操作时,Word 不会更新图形层中的字段。

在这种情况下,您仍然可以通过转到文件->打印然后返回来更新这些字段而无需代码(这是因为这会导致 Word 预览文档,而打印预览通常会导致大多数字段类型更新)。

解释一下,字段\r中的{ SEQ F \r { LINK ... } }使 Word 将名为 F 的序列“重置”为 LINK 字段的值。然后\c下一个SEQ F字段中的 表示“使用 F 序列的当前值”。这样做的好处是,您可以将 F 用于图表文档中的每个图形/形状。

所以在我看来,这是解决方案的合理基础。仍然有很多事情可能出错,但如果基本方法行不通,试图在这里涵盖所有这些事情是没有帮助的。

如果每个图都有一个图表文档,而不是一个图表文档,您仍然可以使用此方法,但更新每个图表文档将需要您打开文档、更新字段、转到打印预览并保存文档。如果您能够使用 VBA 或脚本来自动执行此操作,那就更好了。

我真正担心的是,如果同一个图表文档中有很多 LINK 字段。在这种情况下,最好使用稍微不同的方法。但也许我们现在可以先不谈这个。

答案2

假设您的单独文档具有与主文档相同的图形顺序,并且假设您不使用章节编号而是对图形进行编号,那么您可能只使用 yokki 答案的更简单版本而不链接文档。

  1. 使用标题自动对图表进行编号和重新编号。
  2. 通过以下方式创建块标签编号:“交叉引用名称编号格式的图形”“块编号”

对于图 1 和块编号 X,这将看起来像图 1X。

标准的图形交叉引用通常包含名称和编号(如果您使用该选项)。没有仅交叉引用图形编号的选项(除非您在添加新标题时选择不包括标题名称的选项)。但是,您可以通过更改字段代码轻松更改此设置。

通过 alt + F9 切换到字段代码将把图 1X 变成 { REF _Ref51339218 \h }X (参考编号当然可以不同)

通过将 \h 更改为 # "0",您将名称数字格式更改为仅数字:{ REF _Ref51339218 \# "0"}X

通过 alt+F9 从字段代码改回并更新所有字段。

提示:您可以通过转到打印菜单(无需实际打印)并返回文档轻松更新所有字段(标题、参考等)。

现在图 1X 将更改为 1X。您可以在表格或文本框中使用它来创建块标签编号。您只需复制并粘贴此格式化的 1X 作为图 1 的所有块标签编号,然后将 X 更改为指定数字,您将获得一个范围从 11、12、... 1N,当更改图形顺序或在前面添加图形时,图形编号将自动更新。您必须对每个图形重复此过程。

相关内容