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명령줄에서 이를 어떻게 표시합니까? 사소해 보이는 이 작업을 위해 정말 프로그램을 작성해야 합니까?

관련 정보