web-dev-qa-db-ja.com

Xftがフォント設定を無視するのはなぜですか?

以下に示すように、私のXft設定は私のfontconfig設定と完全に一致します。

$ xrdb -query | grep -i xft
Xft.antialias:  1
Xft.autohint:   1
Xft.dpi:    96
Xft.hinting:    1
Xft.hintstyle:  hintmedium
Xft.lcdfilter:  lcddefault
Xft.rgba:   none

$ fc-match --verbose :family=Mono:size=12 | grep '^.\(hint\|anti\|auto\|dpi\|rgba\|lcd\)'
    antialias: True(w)
    hintstyle: 2(i)(w)
    hinting: True(w)
    autohint: True(w)
    dpi: 96(f)(w)
    rgba: 5(i)(w)
    lcdfilter: 1(i)(w)

残念ながら、Xftはこれらの設定を無視しているようで、ヒントをまったく提供していません。これはGUIEmacsまたはコマンドの実行で確認できます

pango-view --backend=xft --font='Mono, 12' -t 'Xft - X FreeType interface library'

enter image description here

レンダリングをCairoバックエンドによって生成されたものと比較します。

pango-view --backend=cairo --font='Mono, 12' -t 'Xft - X FreeType interface library'

enter image description here

8
Ernest A

Xftではhintmediumhintslightの同義語であるのに対し、fontconfigではhintmediumhintfullの同義語であることがわかります。したがって、オプションhintmediumは、プログラムがCairoとXftのどちらを使用するかに応じて、実際には異なるヒント方法を選択します。

私の知る限り、これはどこにも文書化されていません。試行錯誤しながら理解しなければなりませんでした。

8
Ernest A