![如何确定为系统通用字体别名选择了哪个字体文件?](https://linux22.com/image/67392/%E5%A6%82%E4%BD%95%E7%A1%AE%E5%AE%9A%E4%B8%BA%E7%B3%BB%E7%BB%9F%E9%80%9A%E7%94%A8%E5%AD%97%E4%BD%93%E5%88%AB%E5%90%8D%E9%80%89%E6%8B%A9%E4%BA%86%E5%93%AA%E4%B8%AA%E5%AD%97%E4%BD%93%E6%96%87%E4%BB%B6%EF%BC%9F.png)
在 Fedora 22 中,在 KDE (plasma) 系统设置 -> 字体 -> 字体中,“常规”的设置为“Sans Serif 10”,“固定宽度”的设置为“Monospace 10”,“小”的设置为“Sans Serif” 8”,“工具栏”为“Sans Serif 9”,“菜单”为“Sans Serif 10”,“窗口标题”为“OxygenSans 10”。
如何找出通用“Monospace”别名使用的字体文件? (我确信我可以按照相同的步骤来找出 Sans Serif。)
fc-list
显示 30 个文件,但fc-list | grep -I monospace
什么也不显示。 (“Monospace”必须是别名,而不是实际字体的名称。)
fc-match --all
显示 30 个文件,但同样fc-match | grep -I monospace
什么也不显示。
ls -la ~/.config | grep font
什么也没显示。 (没有~/.config/fontconfig)
/etc/fonts/fonts.conf 列出字体目录,接受已弃用的别名,并指向 /etc/fonts/conf.d。
/etc/fonts/conf.d/60-latin.conf 是一个带有元素别名、子系列(“monospace”)和首选系列(“Bitstream Vera Sans Mono”、“DejaVu Sans Mono”、“Incolsolata”)的 XML 文件、“Andale Mono”、“Courier New”、“Cumberland AMT”、“Luxi Mono”、“Nimbus Mono L”、“Nimbus Mono”和“Courier”)。
/etc/fonts/conf.d/61-oxygen-mono.conf 有子系列(“monospace”)和首选系列(“Oxygen Mono”)。
/etc/fonts/conf.d/69-gnu-free-mono 有子系列(“monospace”)和首选系列(“FreeMono”)。
/etc/fonts/conf.d/69-unifont.conf 有子系列(“monospace”)和首选系列(“FreeMono”)。
现在,在这种情况下,安装的唯一上面引用的首选系列是“Oxygen Mono”(在 OxygenMono-Regular.ttf 中),因此系统必须使用该字体。
但是,如果安装了其他一些首选系列怎么办?
难道没有一个简单的命令可以让您查看像“Monospace”这样的通用系统别名映射到什么吗?我只在我的系统上看到 fc-{cache, cat, list, match, pattern, query, scan, and validate} ,而唯一两个看起来可能执行此操作的(list, match)似乎没有这个特征。
答案1
fc-match 是要使用的实用程序。例如,fc-match monospace
将告诉您等宽字体使用的字体,并按fc-match -s monospace
顺序告诉您后备字体。列表中的第一个字体将是大多数情况下使用的字体,后面的所有字体都是缺失字形的后备字体。