![20.04 系统范围内的梵文字体无法正确呈现](https://linux22.com/image/1024950/20.04%20%E7%B3%BB%E7%BB%9F%E8%8C%83%E5%9B%B4%E5%86%85%E7%9A%84%E6%A2%B5%E6%96%87%E5%AD%97%E4%BD%93%E6%97%A0%E6%B3%95%E6%AD%A3%E7%A1%AE%E5%91%88%E7%8E%B0.png)
字体在浏览器上显示正确。实际问题是 Libreoffice Calc,其中梵文字体无法正确显示:
在这里,您可以看到,即使单元格正确转换了“Halant”,公式栏也不会转换。目前唯一的解决方法是将默认界面字体设置为tweaks
其他 Unicode 字体,例如 Arial Unicode MS。但我不想将 Arial 作为我的系统字体。有没有办法将 Lohit Devanagari 或其他印地语字体指定为使用印地语的地方的主要字体?我已经做了什么这建议无济于事。
编辑:运行时fc-list :lang=hi family
我可以看到 FreeSans 和 FreeSerif 被列为印度语字体,其中 FreeSans 键入的印度语看起来与 Calc 上的公式栏完全一样。有没有办法在 Libreoffice 中设置其他字体而不是 FreeSans?
答案1
似乎flatpak
应用程序似乎无法获取字体配置文件,因此用本机deb
软件包替换它们将解决问题。但是,在新安装时,字体顺序经常会混乱,因此我创建了一个conf
文件,使指定的字体(Lohit Devanagari
在本例中)成为印地语的默认字体,并且当您不想Lohit Devanagari
成为英语 SSA 字幕的默认字体时,还会为您的系统设置一些后备字体:
mkdir -p /.config/fontconfig/conf.d/ && gedit /.config/fontconfig/conf.d/10-hindi.conf
并粘贴以下内容:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match>
<test compare="contains" name="lang">
<string>hi</string>
</test>
<edit mode="prepend" name="family">
<string>Lohit Devanagari</string>
</edit>
</match>
<alias>
<family>sans-serif</family>
<prefer>
<family>Ubuntu</family>
<family>Noto Sans Devanagari</family>
<family>Lohit Devanagari</family>
<family>Mukta</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>Lohit 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>Noto Sans Devanagari</family>
<family>Lohit Devanagari</family>
<family>Arial Unicode MS</family>
</prefer>
</alias>
</fontconfig>