私は最近、Linux上でfontconfig
を使用して、serif、sans-serif、およびmonospacedフォントのシステムデフォルトフォントを設定する方法を知りました。fontconfigのUnicode範囲/コードポイントごとにフォントを設定する方法は?
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match>
<test qual="any" name="family"><string>serif</string></test>
<edit name="family" binding="strong" mode="prepend_first">
<string>Gentium</string>
<string>Sun-ExtA</string>
<string>HanaMinA</string>
<string>HanaMinB</string>
</edit>
</match>
</fontconfig>
binding="strong" mode="prepend_first"
属性が一致規則は、他の設定よりも優先することを確認し、フォント名の順序は、フォントがない場所ことを確認します。基本的には、次の内容で~/.config/fontconfig/fonts.conf
にXML設定ファイルを保存します与えられたコードポイント/文字が含まれている場合、リストの次のフォントが試されます(このリストは上から下に適用されますが、実際は後でバインドされたより強いロジックですが、
この設定の素晴らしい点は、テキストエディタと端末エミュレータで同様に機能することです。
しかし、ある種のフォントにはグリフが含まれていますが、別のフォントではそのコードポイントが優先されるケースがたくさんあります。たとえば、Sun-ExtA
はCJK文字のための素晴らしいデフォルトフォントですが、CJK以外の文字もたくさん扱い、問題のあるグリフがいくつかあります。
と仮定私はSun-ExtA
で〇 U+3007 IDEOGRAPHIC NUMBER ZERO
の外観を好きではないし、むしろそれのためHanaMinA
を使用するには、どのように私はfontconfig
でいることができますか?明らかに、私はHanaMinA
のエントリをSun-ExtA
より優先させることはできません。それは両方のフォントに含まれているグリフのすべてに影響します。
私の勘が「(この要素( fontconfig user documentationによれば、「この要素は少なくとも一つのUnicodeコードポイントの要素以上を保持している」)が<charset>
要素を含む溶液がなければならないということであるおよび/または<range>
範囲表現の2つの要素を保持する " - 必然的に、ある範囲のUnicodeコード点を示す。しかし、これらの要素の使い方の一例を見つけることはできませんでした。
単一のUnicodeコードポイントまたはコードポイントの範囲に特定のフォントを使用するようにfontconfigを設定することはできますか?