我正在尝试禁用大多数其他语言的 noto 字体,除了少数使用 fontconfig 的语言。它使用rejectfont
和glob
元素来禁用所有。然后使用acceptfont
element但无法激活它。
我在 fontconfig 邮件列表中遇到过类似问题的消息,但从未得到答复。https://lists.freedesktop.org/archives/fontconfig/2008-January/002826.html
我的配置文件中的内容在这里
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<selectfont>
<rejectfont>
<glob>/usr/share/fonts/truetype/noto/NotoSans*.ttf</glob>
<glob>/usr/share/fonts/opentype/noto/NotoSans*.ttc</glob>
<glob>/usr/share/fonts/opentype/noto/NotoSerif*.ttc</glob>
<glob>/usr/share/fonts/truetype/noto/NotoSerif*.ttf</glob>
</rejectfont>
</selectfont>
<selectfont>
<acceptfont>
<patelt name="family">
<string>Noto Sans</string>
</patelt>
</acceptfont>
</selectfont>
</fontconfig>
除了为每个系列(字体管理器使用的)编写拒绝字体规则之外,还有像这样的简单方法吗?
请不要建议我删除字体。
答案1
将以下 XML 添加到文件中~/.config/fontconfig/fonts.conf
,它将所有 Noto 语言特定字体列入黑名单:
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<selectfont>
<rejectfont>
<glob>/usr/share/fonts/truetype/noto/NotoKufi*</glob>
<glob>/usr/share/fonts/truetype/noto/NotoNaskh*</glob>
<glob>/usr/share/fonts/truetype/noto/NotoNastaliq*</glob>
<glob>/usr/share/fonts/truetype/noto/NotoSans*</glob>
<glob>/usr/share/fonts/truetype/noto/NotoSerif*</glob>
</rejectfont>
<acceptfont>
<glob>/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf</glob>
<glob>/usr/share/fonts/truetype/noto/NotoSans-Bold.ttf</glob>
<glob>/usr/share/fonts/truetype/noto/NotoSans-BoldItalic.ttf</glob>
<glob>/usr/share/fonts/truetype/noto/NotoSans-Italic.ttf</glob>
<glob>/usr/share/fonts/truetype/noto/NotoSerif-Regular.ttf</glob>
<glob>/usr/share/fonts/truetype/noto/NotoSerif-Bold.ttf</glob>
<glob>/usr/share/fonts/truetype/noto/NotoSerif-BoldItalic.ttf</glob>
<glob>/usr/share/fonts/truetype/noto/NotoSerif-Italic.ttf</glob>
<glob>/usr/share/fonts/noto/NotoSans-*</glob>
<glob>/usr/share/fonts/noto/NotoSerif-*</glob>
</acceptfont>
</selectfont>
并重建字体缓存:fc-cache -f -v
。
此后,Writer 中列出的 Noto 字体数量将从数百种减少到 17 种。