我有一个文件10-sub.conf,用于替换特定区域设置的字体:(使用这答案创建)
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- file saved in /.config/fontconfig/conf.d -->
<fontconfig>
<match>
<test compare="contains" name="lang">
<string>hi</string>
</test>
<edit mode="prepend" name="family">
<string>Lohit Devanagari</string>
</edit>
</match>
<match>
<test compare="contains" name="lang">
<string>gu</string>
</test>
<edit mode="prepend" name="family">
<string>Lohit Gujarati</string>
</edit>
</match>
<match>
<test compare="contains" name="lang">
<string>kn</string>
</test>
<edit mode="prepend" name="family">
<string>Lohit Kannada</string>
</edit>
</match>
<alias>
<family>sans-serif</family>
<prefer>
<family>Ubuntu</family>
<familt>DejaVu Sans</family>
<family>Liberation Sans</family>
<family>Noto Sans</family>
<family>Arial Unicode MS</family>
</prefer>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>Noto Serif</family>
<family>DejaVu Serif</family>
<family>Liberation Serif</family>
<family>Noto Serif Devanagari</family>
<family>Arial Unicode MS</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Ubuntu Mono</family>
<family>Noto Sans Mono</family>
<family>DejaVu Sans Mono</family>
<family>Liberation Mono</family>
<family>Arial Unicode MS</family>
</prefer>
</alias>
</fontconfig>Arial字体用于捕获系统上未安装的任何字体。这个方法适用于Devanagari和Gujarati,但是Kannada脚本总是由Arial Unicode而不是Lohit Kannada呈现。我已经在我的系统/usr/share/fonts/truetype/lohit-kannada/Lohit-Kannada.ttf上安装了Lohit Kannada
系统: Ubuntu 22.04 on GNOME 42.5。
访问这网站将Kannada字体呈现为Arial,尽管在文件中为其提供了<match>,而这网站则以Lohit古吉拉特语呈现古吉拉特语(删除古吉拉特语的<match>标记时,古吉拉特语以回退字体呈现)
LC_CTYPE=kn_IN fc-match输出
Lohit-Kannada.ttf: "Lohit Kannada" "Regular"

发布于 2023-01-23 17:11:23
我不得不将从系统中删除以使其工作。然后,我稍微调整了配置文件:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>sans-serif</family>
<prefer>
<family>Ubuntu</family>
<family>Liberation Sans</family>
<family>DejaVu Sans</family>
<family>Noto Sans</family>
<family>Lohit Devanagari</family>
<family>Lohit Gujarati</family>
</prefer>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>Noto Serif</family>
<family>Liberation Serif</family>
<family>DejaVu Serif</family>
<family>Noto Serif Devanagari</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Ubuntu Mono</family>
<family>Noto Sans Mono</family>
<family>Liberation Mono</family>
<family>Biryani</family>
</prefer>
</alias>
</fontconfig>此外,黑名单中的FreeSans和FreeSerif是因为它们不是为印度语而设计的,然而系统却以某种方式回到了它们身上(通过字体管理器很容易做到):
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
<selectfont>
<rejectfont>
<pattern>
<patelt name="family">
<string>FreeSerif</string>
</patelt>
</pattern>
<pattern>
<patelt name="family">
<string>FreeSans</string>
</patelt>
</pattern>
<pattern>
<patelt name="family">
<string>FreeMono</string>
</patelt>
</pattern>
</rejectfont>
</selectfont>
</fontconfig>https://askubuntu.com/questions/1447897
复制相似问题