如何重新定义字体替换?

如何重新定义字体替换?

我想HelveticaLTStd-BoldLiberationSans-Bold字体替换。它已经安装在很多地方了:

在此处输入图片描述

DejaVu Sans选择的是:

paul@desktop:~$ fc-match "HelveticaLTStd-Bold"
DejaVuSans.ttf: "DejaVu Sans" "Book"

我听从了PDF 字体恢复为 DejaVu Sans,需要等宽字体替换,但没有效果。有什么解决办法吗?


我使用 Ubuntu 22.04.2 LTS x86_64。我检查它fonts-urw-base35已安装。我创建了~/.config/fontconfig/conf.d/10-pdf-aliases.conf包含以下内容的文件:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "/etc/fonts/conf.d/fonts.dtd">
<fontconfig>

<alias binding="same">
<family>CourierStd</family>
<accept>
<family>Courier</family>
</accept>
</alias>

<alias>
<family>CourierStd</family>
<default><family>monospace</family></default>
</alias>

</fontconfig>

我已经跑了fc-cache,但仍然得到:

paul@desktop:~$ fc-match "HelveticaLTStd-Bold"
DejaVuSans.ttf: "DejaVu Sans" "Book"

我没有注意到该配置文件中的字体名称不同。我对其进行了编辑,它解决了我在使用文档查看器时遇到的问题。不幸的是,Okular(使用 Flatpak 安装)仍然使用DejaVu Sans并产生这种错误的字距调整:

在此处输入图片描述

以下是本文档中使用的字体:

在此处输入图片描述

答案1

好吧,另一个问题有助于处理Courier Std字体问题,同时等待上游修复。

首先,尝试替换此部分:

<alias binding="same">
<family>CourierStd</family>
<accept>
<family>Courier</family>
</accept>
</alias>

和:

<alias binding="same">
<family>HelveticaLTStd</family>
<accept>
<family>Liberation Sans</family>
</accept>
</alias>

我的机器上的结果:

$ fc-match "HelveticaLTStd: bold"
LiberationSans-Bold.ttf: "Liberation Sans" "Bold"

相关内容