Fontconfig 출력을 이해하는 방법: "패턴에는 38개의 엘트(크기 48)가 있습니다."

Fontconfig 출력을 이해하는 방법: "패턴에는 38개의 엘트(크기 48)가 있습니다."

자세한 출력으로 실행하거나 때로는 아무것도 출력하지 않을 때, 글꼴 구성이 모든 글꼴에 대해 쓰는 첫 번째 내용은 다음과 같은 줄입니다.

Pattern has 38 elts (size 48)

이 숫자는 무엇을 나타냅니까? 그들의 목적은 무엇입니까?

소스 코드를 살펴본 후 "elts"는 요소의 약자라고 생각하지만 이 숫자가 무엇을 의미하는지, 그리고 이 숫자가 Fontconfig의 동작을 이해하는 데 관련이 있는지 여부는 여전히 알 수 없습니다.

다음은 출력의 전체 예입니다(일부 문자 세트 행이 제거됨).

$ fc-match "DejaVu Sans" -v
Pattern has 38 elts (size 48)
        family: "DejaVu Sans"(s)
        familylang: "en"(s)
        style: "Book"(s)
        stylelang: "en"(s)
        fullname: "DejaVu Sans"(s)
        fullnamelang: "en"(s)
        slant: 0(i)(s)
        weight: 80(f)(s)
        width: 100(f)(s)
        size: 12(f)(s)
        pixelsize: 12.5(f)(s)
        foundry: "PfEd"(w)
        antialias: True(w)
        hintstyle: 1(i)(w)
        hinting: True(s)
        verticallayout: False(s)
        autohint: False(s)
        globaladvance: True(s)
        file: "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"(w)
        index: 0(i)(w)
        outline: True(w)
        scalable: True(w)
        dpi: 75(f)(s)
        scale: 1(f)(s)
        charset:
        0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffffffff ffffffff ffffffff
        0001: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
(w)
        lang: aa|ab|af|ar|ast|av|ay|az-az|az-ir|ba|bm|be|bg|bi|bin|br|bs|bua|ca|ce|ch|chm|co|cs|cu|cv|cy|da|de|el|en|eo|es|et|eu|fa|fi|fj|fo|fr|ff|fur|fy|ga|gd|gl|gn|gv|ha|haw|he|ho|hr|hu|hy|ia|ig|id|ie|ik|io|is|it|iu|ka|kaa|ki|kk|kl|ku-am|ku-ir|kum|kv|kw|ky|la|lb|lez|ln|lo|lt|lv|mg|mh|mi|mk|mo|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|os|pl|pt|rm|ro|ru|sah|sco|se|sel|sh|shs|sk|sl|sm|sma|smj|smn|sms|so|sq|sr|ss|st|sv|sw|tg|tk|tl|tn|to|tr|ts|tt|tw|tyv|ug|uk|uz|ve|vi|vo|vot|wa|wen|wo|xh|yap|yi|yo|zu|ak|an|ber-dz|ber-ma|crh|csb|ee|fat|fil|hsb|ht|hz|jv|kab|kj|kr|ku-iq|ku-tr|kwm|lg|li|mn-mn|ms|na|ng|nv|ota|pap-an|pap-aw|qu|quz|rn|rw|sc|sd|sg|sn|su|ty|za(s)
        fontversion: 155320(i)(s)
        capability: "otlayout:DFLT otlayout:arab otlayout:armn otlayout:brai otlayout:cans otlayout:cher otlayout:cyrl otlayout:geor otlayout:grek otlayout:hani otlayout:hebr otlayout:kana otlayout:lao  otlayout:latn otlayout:math otlayout:nko  otlayout:ogam otlayout:runr otlayout:tfng otlayout:thai"(w)
        fontformat: "TrueType"(w)
        embeddedbitmap: True(s)
        decorative: False(s)
        lcdfilter: 1(i)(w)
        namelang: "en"(s)
        prgname: "fc-match"(s)
        postscriptname: "DejaVuSans"(w)
        color: False(w)
        symbol: False(s)
        variable: False(s)

답변1

확실하진 않지만 한번 살펴보세요fontconfig문서이 문장을 이해하는 데 도움이 될 수 있습니다.

<pattern>

패턴 요소는 수신 글꼴에 대해 목록 스타일 일치를 수행합니다. 즉, 요소 ​​목록 및 관련 값을 보유합니다. (...) 패턴 요소에는 patelt요소가 포함됩니다.

<patelt name="property">

Patelt 요소는 단일 패턴 요소와 값 목록을 보유합니다. name스키마 요소의 이름을 나타내는 속성이 있어야 합니다 . 특허 요소에는 int, double, string, 및 요소가 matrix포함 됩니다 .boolcharsetconst

따라서 "elt"는 글꼴 일치에 사용되는 패턴 요소입니다. 이는 이름-값 쌍으로 표현되며 행 수를 세면 실제로 38개의 명령문이 있음을 알 수 있습니다(다음 두 행은 charset:요소의 "값" 부분임을 기억하십시오 charset).

size문은 기본 구조의 내부 속성을 나타냅니다 FcPattern. 이 출력은 디버깅 목적으로 보이므로(해당 내용 참조)기원) 및 데이터 유형의 내부 작동 방식 FcPattern은 다음과 같습니다.어떤 기록도 없다, 실제 의미를 이해할 희망이 거의 없을 수 있습니다.

관련 정보