私はArch Linux、Deepin Desktopを使用しています。標準フォントとしてNoto Serifを使用していますが、アラビア文字が好きではありません。だから私の目標は、アラビア文字のためだけに別のフォントを使用することです。
これが私が試したものです。 /etc/fonts/conf.d/
に次の内容の新しい構成ファイルを作成しました。
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="pattern">
<test name="lang" compare="contains">
<string>ar</string>
</test>
<test qual="any" name="family">
<string>sans-serif</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>Noto Naskh Arabic</string>
</edit>
</match>
<match target="pattern">
<test name="lang" compare="contains">
<string>ar</string>
</test>
<test qual="any" name="family">
<string>serif</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>Noto Naskh Arabic</string>
</edit>
</match>
</fontconfig>
その後、fc-cache -r
を実行しました。しかし、これは機能しませんでした。同じフォントがまだ使用されており、fc-match
を実行すると、以前と同じようにNotoSerif-Regular.ttf: "Noto Serif" "Regular"
が返されます。
多くのNotoフォントは、一部はアラビア語のスクリプトをサポートしているとシステムに報告します。これらのフォントの1つはUrduフォントであり、何らかの理由でアラビア語スクリプトをサポートする他のフォントよりも優先されます。
次のようにprefer特定のフォントを他のフォントより優先できます。
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>sans-serif</family>
<prefer>
<family>Noto Sans</family>
<family>Noto Naskh Arabic</family>
</prefer>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>Noto Serif</family>
<family>Noto Naskh Arabic</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Noto Sans Mono</family>
<family>Noto Naskh Arabic</family>
</prefer>
</alias>
</fontconfig>
フォントの位置が高いほど優先されます。この場合、他のアラビア語スクリプトフォントよりもNoto Naskh Arabic
を優先します。
もちろん、これは任意の言語またはフォントで行うことができます。
何らかの理由で、私のために機能したのは~/.config/fontconfig/fonts.conf
にあるユーザー構成ファイルのみでした。 $XDG_CONFIG_HOME
環境変数は、ホームディレクトリの.config
ディレクトリに設定する必要があることに注意してください。したがって、$HOME/.config
になります。
次に、fc-cache
を使用して有効にするために、構成を再構築する必要があります。新しく起動したアプリケーションのみが新しい構成で表示されます。変更をグローバルに有効にするには、Xサーバーまたはデスクトップを再起動します。
編集:一部のWebサイトがアラビア語のUTF-8文字を表示しながらar
ロケールを使用するため、単にすべてのWebサイトで機能しないen
ロケールと一致する場合。
/etc/fonts/conf.d
に移動してREADME
を読み、次に[30-40]
で始まる構成ファイルを読み取ると、これが正しい答えであることがわかります。
WebサイトがSerifフォントを要求する場合、 fontconfigはこのリストを最初にNoto Serif
に移動し、アラビア語の文字を見つけると、リスト内の2番目のフォント—Noto Naskh Arabic
—に頼り、そのフォントがアラビア語のスクリプトをサポートしていることを見つけ、それが使用されます。