通常,我用三种语言(英语、希伯来语、阿拉伯语)处理 MS Word,每次我写字,甚至切换语言时,它都会返回到字体:TimesNewRoman。当我使用不支持其他语言的字体(传统阿拉伯字体(简称 TA)不支持希伯来语)时,实际上会发生此问题。问题恰恰发生在使用希伯来语时。(TA 不支持希伯来语),因此字体更改为 TimeNewRoman 并保持不变,即使将语言改回阿拉伯语也是如此。
我怎样才能使“当前字体不支持的语言”用 Calibri 而不是 TimeNewRoman 书写,或者保持字体恢复为我当前的字体而不是失败的 TimeNewRoman。
我尝试过一些方法,但没有任何效果:
- 更改样式的字体。
- 更改默认字体。
- 改变主题的字体设置。截屏
- 创建并将所有这些更改应用于 Normal.dotm 模板而不是仅仅当前文档。
额外信息:当使用两种复杂语言时会出现这个问题,我希望可以为每种语言选择一种字体,而不是只为复杂语言选择一种字体。
答案1
作为临时解决方案,我创建了宏,以便可以半自动地获得所需的字体
Sub Arabic()
Selection.Font.Name = "Traditional Arabic"
End Sub
Sub Hebrew()
Selection.Font.Name = "David"
End Sub
Sub English()
Selection.Font.Name = "Calibri"
End Sub
然后为每种字体定义一个快捷图标和快捷键:
- 显示 Word 选项
- 在对话框左侧,单击自定义功能区
- 单击“自定义键盘”
- 选择宏类别
- 选择您想要分配给快捷键的宏并分配..
- 我选择 Ctrl+Alt+Q 表示英语,Ctrl+Alt+W 表示希伯来语,Ctrl+Alt+E 表示阿拉伯语。
顺便说一下,我已经将 ctrl+1 分配给英语,ctrl+2 分配给希伯来语,ctrl+3 分配给阿拉伯语。使用 Autohotkey 和以下代码:
^1::SetInputLang(0x0409) ; English (USA)
^2::SetInputLang(0x040d) ; Hebrew
^3::SetInputLang(0x0401) ; arabic saudi arabia
SetInputLang(Lang)
{
WinExist("A")
ControlGetFocus, CtrlInFocus
PostMessage, 0x50, 0, % Lang, %CtrlInFocus%
}
希望这对你有帮助,Bm3