卡纳达字体未使用我建议的字体

卡纳达字体未使用我建议的字体

我有一个文件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 Unicode 字体用于捕获系统上未安装的任何字体。此方法适用于 Devanagari 和 Gujarati,但卡纳达语脚本始终由 Arial Unicode 而不是 Lohit Kannada 呈现。我的系统上安装了 Lohit Kannada/usr/share/fonts/truetype/lohit-kannada/Lohit-Kannada.ttf

系统:GNOME 42.5 上的 Ubuntu 22.04。

参观<match>尽管文件中提供了 Kannada 字体,但网站仍以 Arial Unicode 格式呈现 Kannada 字体,而网站使用 Lohit Gujarati 呈现古吉拉特语(删除<match>古吉拉特语标签后,将使用古吉拉特语的后备字体呈现)

输出LC_CTYPE=kn_IN fc-match

Lohit-Kannada.ttf: "Lohit Kannada" "Regular" 徘徊

答案1

我怀疑您在其他语言环境(更具体地说是LC_CTYPE语言环境类别)下运行 Firefox,但是kn_IN,如果是这种情况,则字体配置文件中第一个语言保护部分不会产生任何影响。

请尝试以下操作:

  • 关闭 Firefox

  • Alt+F2并使用以下命令重新启动 Firefox:

    env LC_CTYPE=kn_IN firefox
    

希望带有卡纳达语文字的网页现在看起来更好一些。

答案2

我必须从系统中删除 Arial Unicode 才能使其正常工作。然后我稍微调整了配置文件:

<?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>

另外,由于它们不是为印度语制作的,所以被列入黑名单FreeSansFreeSerif但系统还是以某种方式依赖它们(通过字体管理器轻松完成):

<?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>

相关内容