デフォルトのフォントエイリアス優先順位をオーバーライドする方法

デフォルトのフォントエイリアス優先順位をオーバーライドする方法

手書きフォントの場合は、URW Z003とÉcolier Courtフォントをインストールしました。 Écolier Courtを使いたいのですが、fc-match cursiveZ0003を選んでいると思います。 Z003フォントパッケージは、維持したい多くのパッケージの依存関係なので、削除できません。私は選択を変更するためにFontconfig confファイルを作成しましたが、運がありませんでした。

URW Z003の関連フォント構成行は次/etc/fonts/conf.d/61-urw-z003.confのとおりです。

  <alias>
    <family>cursive</family>
    <prefer>
      <family>Z003</family>
    </prefer>
  </alias>

  <alias>
    <family>Z003</family>
    <default>
      <family>cursive</family>
    </default>
  </alias>

Écolier Courtの関連フォント構成行は次/etc/fonts/conf.d/61-ecolier-court.confのとおりです。

  <alias>
    <family>cursive</family>
    <prefer>
      <family>Écolier court</family>
    </prefer>
  </alias>

  <alias>
    <family>Écolier court</family>
    <default>
      <family>cursive</family>
    </default>
  </alias>

私が書いたフォント設定ファイルは次のとおりです。

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <alias>
    <family>cursive</family>
    <prefer>
      <family>Écolier court</family>
    </prefer>
  </alias>
  <alias>
    <family>Écolier court</family>
    <prefer>
      <family>cursive</family>
    </prefer>
  </alias>
</fontconfig>

Fontconfigファイル名にプレフィックスを追加しましたが、00-どちら99-の場合もfc-match手書きフォントを要求すると、Fontconfigは常にZ003を選択しているようです。

答え1

最初、ルールを誤って設定して、次を使用しました。

<prefer>
  <family>cursive</family>
</prefer>

ただし、以下を使用する必要があります。

<default>
  <family>cursive</family>
</default>

第二、間違った姓を使用した可能性があります。通常、フォント名にはアクセントはありません。正しい姓を確認してください。

≻ fc-scan ecolier-court.ttf
        family: "Ecolier_court"(s)
        lang: aa|bi|fj|gv|ho|ia|id|ie|io|nr|om|so|sq|ss|st|sw|ts|uz|vo|xh|yap|zu|jv|kj|kwm|ms|ng|rn|rw|sg|sn|su|za(s)

城があれば生態庭園この場合、構成で使用する必要があります。

第三、Webからダウンロードしたバージョンには対応する言語がないため、フォントと絶対に一致しないように設定してenください。たとえば、シェルに応じてさまざまな言語のフォントを使用したり、明示的に一致させることができます。$LANGen fc-match cursivefc-match cursive:lang=frenv LANG=fr fc-match cursive

他の理由があるかもしれませんが、まずこれら3つの理由が問題を解決できるかどうかを見てみましょう。

関連情報