在示例文档中,有许多基于纯文本 (Courier) 的样式(在 Garamond 中)。我想将这些样式更改为其他字体(例如 Georgia)。
由于所讨论的样式是 Garamond 的,但都是基于 Courier(来自纯文本),我猜想每种样式的字体都已单独更改。这让我觉得我必须将每种样式单独更改为新字体。
但是……这不可能是唯一的方法,对吧?一定有办法对一组这样的样式进行全面的字体更改。或者我对样式工作原理的理解可能缺少了某些东西。
如果重要的话,我正在使用 Word 2007。
编辑:我并不是在问用 Control-H 替换字体,除非您有办法随后将这些更改应用于受影响的样式。
最好是以后我可以向不太懂技术的用户解释如何做同样的事情。因此,虽然 VBA 解决方案这次可能帮我解决了问题,但它仅限于精通脚本的用户。
答案1
我认为一次性重新定义大量样式的属性的唯一方法是使用 VBA 实现自动化。
我在这里要做的就是使用文档文本的基本属性(语言、Garamond 字体、大小、行距甚至段落间距)重新定义底层样式(可能是“普通”而不是“纯文本”,因为“普通”是空白文档中新文本的默认样式),并根据该样式更改其他样式。
从长远来看,这将为您提供更多可维护的样式。
如果所有标题都采用不同的字体,例如 Helvetica,您可能希望将标题 6 设置为该字体并以此为基础设置所有其他标题,但我认为没有必要使用更复杂的“继承”模型。
答案2
在 Word 中批量替换字体:
- 打开替换对话框
- 单击“查找内容”字段(但不要输入任何搜索字符串)
- 点击更多按钮
- 单击“格式”按钮并选择“字体”
- 选择字体名称(您也可以设置样式和大小以实现更精细的控制)
- 单击“确定”
- 单击“替换为”内部(但不要输入任何搜索字符串)
- 重复选择替换字体的过程
- 单击“查找下一个”加“替换”或单击“全部替换”来执行替换。
答案3
如果从一种样式到另一种样式的继承已被明确地覆盖,并且每种样式都使用不同的字体,那么您只能在每种样式中将其改回原样。但是,如果这是一个 .dotx 模板,您可以在文件的 xml 中使用一些查找和替换来执行此操作,这可能比想出使用 VBA 执行此操作的方法更快。
对于破解 2007 文件格式来说,最好的书是Stephanie Krieger 编写的《高级办公文档 2007 版》
另外:虽然这不会减少这次的工作量,但更改这些内容的“正确”方法是选择或创建一个主题字体集,将您选择的字体用于标题和正文。然后在您的样式中选择“Georgia(标题)”或“Comic Sans(正文)”,而不是单独选择字体。对于较低级别的样式,理想情况下应基于以前的样式(例如,标题 2 取自标题 1)。选择“主题”字体而不是明确选择意味着,只需更改字体集,将来的更改就会变得简单得多。
附言:请不要在正文中使用 Comic Sans。