fontconfig により選択されるフォントを知るには

fc-match コマンドを使うのだけど、引数として渡すべきパターンの書き方がよく分からなくて参った。

$ fc-match sans
DejaVuSans.ttf: "DejaVu Sans" "Book"
$ fc-match sans:weight=200
DejaVuSans-Bold.ttf: "DejaVu Sans" "Bold"
$ fc-match sans:lang=ja
wqy-zenhei.ttc: "WenQuanYi Zen Hei" "中等"

こんな感じで。さらにマッチングの過程を知りたければ -v オプションを渡す。

それにしても、Debian / Ubuntu の fontconfig パッケージ付属の fonts.conf (conf.d 以下) はリアルに発狂しすぎ。Serif なのに「MS Gothic」を列挙してたりとか。個人的には「MS Pゴシック」とか「VL Gothic」の上に持ってきたりすると嫌がる人がいそうなのでやりたくないけど、誰か直した方がいいよほんとに。

ちなみに上の lang=ja なのに中国語フォントが選ばれてしまう問題は 44-wqy-zenhei.conf を /etc/fonts/conf.d から消すと治る。