OOo Off the Wall: 使用 OOo 合并文档

作者:Bruce Byfield

几周前,OpenOffice.org 用户列表再次出现了解释为何 OpenOffice.org Writer 没有“显示代码”功能(用于显示文档的原始编码以进行故障排除)的讨论,这次是向一位前 WordPerfect 用户解释。这次讨论是由一位发帖者发起的,他坚持认为当他需要将多个文档合并为一个文档时,他需要这个功能。这次讨论让我意识到,尽管我倾向于在本专栏中谈论功能,但有时工作流程更为重要。通常,问题不在于工具,而在于你如何使用它们。在潜水浏览了大部分帖子后,我最终提出了一个关于如何使用 OOo 中的工具来合并文档的建议,这种方法比你希望通过“显示代码”实现的方法高效得多。接下来是我建议的扩展版本,它再次强调了在许多情况下使用样式的优势。

WordPerfect 的老用户每隔几个月就会提出为 Writer 添加“显示代码”功能的想法。作为回应,已经编写了一个宏,它提供了“显示代码”的外观,但没有其功能。但是,此功能不太可能出现在任何即将发布的 Writer 版本中。原因之一是,虽然 WordPerfect 是一个基于代码的文字处理器,其中每个格式片段都以类似于 HTML 标签的方式嵌入,但 Writer 是一个基于框架的处理器。这意味着文本选择的特征与文本本身是分开定义的。因此,不可能有直接等同于“显示代码”的功能。

Writer 不会拥有“显示代码”功能的另一个原因是 Writer 是面向样式的,而当用户依赖手动覆盖时,“显示代码”效果最佳。如果您虔诚地使用样式,您就不会遇到追踪零散格式的问题,因为 Writer 不允许您将多个字符或段落样式应用于选择。相反,您只需要打开样式对话框即可查看选择是如何定义的。对于您需要查看屏幕上更多内容的情况,“视图”->“非打印字符”通常就足够了。否则,如果您想要更多,您可能最好使用 TeX 而不是图形文字处理器。对于大多数用途,Writer 已经拥有了进行格式故障排除所需的所有工具。

那么,您应该如何格式化由几个不同的原始文档组成的文档呢?理想情况下,您应该首先强制执行公司或项目策略,使用相同的模板,并鼓励人们始终使用样式。然而,这不仅是空中楼阁,而且还期望在下一版《德布雷特贵族年鉴》中看到您的名字和头衔。在实践中,至少四分之三的团队可能会像使用打字机一样使用 Writer,忽略样式并在心血来潮时手动添加格式。

您可以通过打开每个文档,按 F11,然后将视图设置为字符的“已应用样式”来了解情况是否如此。通过浏览每个文档的格式并选择部分内容,您很快就能看出是否使用了手动覆盖。您可以通过格式的更改是否与“样式和格式”浮动窗口中突出显示的样式的更改相对应来判断这一点。但是,如果您假设最坏的情况,您可能会更经常地是对的。

在继续之前,您还应该为您正在处理的每个文件创建备份。这是一个基本的预防措施,但怎么强调都不为过。您认为这种努力不值得付出时间的那一次,就是出现问题的那一次。

然后,您可以按照以下步骤操作

1. 创建一个包含所有必要样式的新文档。

从新文档开始可以让您了解自己正在处理的内容的优势。在复制和粘贴之前,浏览所有组件文档,查看您需要重新创建格式的字符和段落样式。不要担心原始作者如何应用他们的格式——目标不是扮演侦探,而是重现外观。只要看起来一样,就没有人会在意您是如何获得这种效果的。您还应该为您的新样式命名,这些名称与组件文档中的任何样式都不共享,只是为了简化您的生活。一段使用样式名称的文本(其名称已存在于要粘贴到的文档中)会自动重新格式化——这可能是一个方便的步骤,但有时会产生与解决的问题一样多的问题。

您可以使用其中一个原始文档的副本作为合并后的文档,但最好不要这样做。除非,当然,您对它的格式有很好的了解。

另一种选择是创建一个新的主文档,并将所有组件文件添加到其中。如果组件文档也将独立使用,则此选项尤其具有吸引力。但是,使用与其子文档格式不同的主文档需要对 Writer 有深入的了解。因此,除非您可以将这些机制教给所有可能使用这些文档的人,否则它可能不切实际。

无论您使用的是常规 Writer 文件还是主文档,都只有在定义了所有样式后才复制和粘贴组件文档。然后,保持它们打开,以防您需要参考它们。

2. 使用“查找和替换”进行第一轮格式化。

OOo Off the Wall: Combining Documents with OOo

图 1. “属性”和“格式”是可以简化将多个文档重新格式化为一个文档的任务的两个搜索工具。

“编辑”->“查找和替换”包含两个可以帮助您格式化新文档的工具。如果任何组件文档包含手动覆盖,请使用“属性”或“格式”按钮搜索特定的格式片段。例如,如果某些文档使用斜体表示书名,请搜索斜体。当您找到匹配项时,通过将鼠标光标放在段落中来去除手动覆盖。然后,使用“样式和格式”浮动窗口应用该情况的字符样式。

OOo Off the Wall: Combining Documents with OOo

图 2. 当搜索工具找到与样式匹配的项时,相同的样式会在“样式和格式”浮动窗口中突出显示。

如果任何文档使用样式,请从“查找和替换”窗口中选择“更多选项”->“搜索样式”。查阅“样式和格式”浮动窗口中的“已应用样式”视图,将所有已应用的样式替换为您创建的用于替换它们的字符和段落样式。

3. 检查结果并进行清理。

此时,通常剩下的就是将新文档与其每个组件进行比较。在某些地方,您可能需要创建新样式,因为您忽略了一些必要的格式片段。在其他地方,您可能需要选择“视图”->“工具栏”->“绘图”来创建图表,或者从组件文档中截取复杂格式片段的屏幕截图,然后将其作为图片插入到新文档中。但是,如果您在为新文档创建样式时很小心,那么通常此时您应该几乎无事可做。

但是,作为最后一步,您可能需要通过删除组件文档中的任何样式来清理文档。您可能还希望从新的合并文档中创建组件文档的新版本,并使它们尽可能干净。通过执行这些步骤,您可以更轻松地在将来处理所有文档。

结论

这不是您可以遵循的唯一工作流程模型。有些人更喜欢在粘贴组件后立即选择整个新文档,使用 Ctrl+Alt+Backspace 去除所有格式,然后通过不断参考原始文档来应用他们自己的样式。这种方法可能特别吸引那些想要控制其工作各个方面的人。虽然它可能是一种更可靠的方法,但这种模型也比上面概述的步骤慢得多。

有些人可能会争辩说,习惯于手动覆盖的人应该以他们喜欢的方式工作,并且应该拥有“显示代码”功能。尽管这种论点在理论上是理所应当的,但在实践中似乎是反常的。这意味着忽略了 Writer 和 WordPerfect 之间的差异。此外,在这种情况下,这意味着宁愿花费两到三倍的工作量来获得您想要的结果,因为您不了解手头的工具。OpenOffice.org 远非完美,我喜欢认为我是必要时第一个批评它的人之一。但是,在这种情况下,它拥有完成任务所需的所有工具——如果人们愿意花时间学习如何使用它们就好了。

资源

在此处查找 Bruce Byfield 的所有 OpenOffice.org 文章 here

Bruce Byfield 是一位计算机记者和课程设计师。他的文章定期出现在 Linux Journal 和 Newsforge 网站上。

加载 Disqus 评论