Fontconfig、fc-matchでワイルドカードシリーズとサイズを使用する方法

Fontconfig、fc-matchでワイルドカードシリーズとサイズを使用する方法

私は少なくとも読書のフォント構成マッチングの概念的な理解があると思いますman fonts.conf。しかし、fc-match彼の行動はいつもいわゆる理解と一致していませんでした。

私の最初の目標は、私がインストールしたすべての固定幅フォント(またはcharcell)をリストすることでした。今、その区別は重要ではありません。問題#363365は元の目標を解決していることを知っていますが、目標は「特定の属性値を持つすべてのインストール済みフォントを検索する」にまとめることができます。 「XY問題」の可能性を避けるために、より具体的な目標を挙げています。

マンページセクションで以下をFONT NAMES読んでいます。

名前には系列やポイントサイズを含める必要はなく、無視できます。

だから私は次のことを試みます:

fc-match -s '-:spacing=mono'

そして得る:

fc-match: invalid option -- ':'
usage: fc-match [-savbVh] [-f FORMAT] [--sort] [--all] [--verbose] [--brief] [--format=FORMAT] [--version] [--help] [pattern] {element...}
List best font matching [pattern]

  -s, --sort           display sorted list of matches
  -a, --all            display unpruned sorted list of matches
  -v, --verbose        display entire font pattern verbosely
  -b, --brief          display entire font pattern briefly
  -f, --format=FORMAT  use the given output format
  -V, --version        display font config version and exit
  -h, --help           display this help and exit

まあ、これは最初のパラメータを-オプションとして間違える一般的なUnixの問題のようです。残念ながら、man fc-matchヘルプ出力よりも冗長ではないため、修正方法は明確ではありません。これは一般的な問題なので、一般的な回避策を試しました。

fc-match -s -- '-:spacing=mono'

しかし、今はfc-match非常に長いリストが提供されているので、実際にそのパターンを考慮しているのだろうか?

LiberationSans-Regular.ttf: "Liberation Sans" "Regular"
DejaVuSans.ttf: "DejaVu Sans" "Book"
DejaVuSans-Bold.ttf: "DejaVu Sans" "Bold"
DejaVuSans-Oblique.ttf: "DejaVu Sans" "Oblique"
DejaVuSans-BoldOblique.ttf: "DejaVu Sans" "Bold Oblique"
NimbusSans-Regular.t1: "Nimbus Sans" "Regular"
FreeSans.ttf: "FreeSans" "Regular"
FreeMono.ttf: "FreeMono" "Regular"
FreeSerif.ttf: "FreeSerif" "Regular"
texgyreadventor-regular.otf: "TeX Gyre Adventor" "Regular"
DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book"
DejaVuSerif.ttf: "DejaVu Serif" "Book"
texgyreschola-regular.otf: "TeX Gyre Schola" "Regular"
lmmono10-regular.otf: "Latin Modern Mono" "10 Regular"
lmsansquot8-regular.otf: "Latin Modern Sans Quotation" "8 Regular"
LiberationSerif-Regular.ttf: "Liberation Serif" "Regular"
Arimo-Regular.ttf: "Arimo" "Regular"
DroidSansFallbackFull.ttf: "Droid Sans Fallback" "Regular"
pcrr8a.pfb: "Courier" "Regular"
StandardSymbolsPS.t1: "Standard Symbols PS" "Regular"
Symbola_hint.ttf: "Symbola" "Regular"
texgyrechorus-mediumitalic.otf: "TeX Gyre Chorus" "Regular"
cmunbmr.ttf: "CMU Bright" "Roman"
cmunorm.ttf: "CMU Concrete" "Roman"
cmunrm.ttf: "CMU Serif" "Roman"
cmuntt.ttf: "CMU Typewriter Text" "Regular"
DejaVuSerif-Italic.ttf: "DejaVu Serif" "Italic"
FiraCode-Regular.ttf: "Fira Code" "Regular"
unifont.ttf: "Unifont" "Medium"
unifont_csur.ttf: "Unifont CSUR" "Medium"
unifont_upper.ttf: "Unifont Upper" "Medium"

ある種の厳密な一致を表示する必要があり、fonconfig APIを使用してこれを行う方法を理解することもできますが、fc-matchコマンドラインでこれをどのように表示しますか?些細なように見えるこの作業のために本当にプログラムを書く必要がありますか?

ベストアンサー1

おすすめ記事