chrissimpkins / codeface

Typefaces for source code beautification
Other
6.21k stars 414 forks source link

Character set coverage information #137

Open chrissimpkins opened 8 years ago

chrissimpkins commented 8 years ago

Include information on character set coverage for each font. Separate gallery markdown file with examples from broad range of character sets? Icons next to font names?

Suggestions welcomed

cc: @van-de-bugger

chrissimpkins commented 8 years ago

from @van-de-bugger in #119 :

Did you try fontimage program from fontforge package? It does not use fallback fonts. It is not suitable for syntax highlighters, but may be suitable for Text Specimen and Compact Text Specimen.

$ fontimage --text "Жы" --text "Ψω" --text "です" --o sample.png ./Hack-Regular.ttf

sample

I suppose Hack does not have Japanese glyphs?

van-de-bugger commented 3 years ago

Just FYI:

fc-query (from fontconfig package) may be used to get information about font coverage, e. g:

$ fc-query /usr/share/fonts/google-roboto/Roboto-Regular.ttf
Pattern has 25 elts (size 32)
    family: "Roboto"(s)
    familylang: "en"(s)
    style: "Regular"(s)
    stylelang: "en"(s)
    fullname: "Roboto"(s)
    fullnamelang: "en"(s)
    slant: 0(i)(s)
    weight: 80(f)(s)
    width: 100(f)(s)
    foundry: "GOOG"(s)
    file: "Roboto-Regular.ttf"(s)
    index: 0(i)(s)
    outline: True(s)
    scalable: True(s)
    charset: 
    0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffffffff ffffffff ffffffff
    0001: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0002: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0003: ffffffff ffffffff ffffffff fcffffff ffffd7f0 fffffffb ffffffff ffff0003
    0004: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0005: ffffffff 0000ffff 00000000 00000000 00000000 00000000 00000000 00000000
    001a: 00000000 00000000 00000000 00000000 00000000 7fff0000 00000000 00000000
    001d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff f03fffff
    001e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    001f: 3f3fffff ffffffff aaff3f3f 3fffffff ffffffff ffdfffff efcfffdf 7fdcffff
    0020: ffffffff ffff80ff ffffffff fff30000 1fff7fff 7fffffff 18000000 00010108
    0021: c0c8026b 08044c6f ffffa000 ffffffff 000a03ff 00000000 00000000 00000000
    0022: 44068044 00000800 00000100 00000031 00000000 00000000 00000000 00000000
    0024: 00000000 00000008 00000000 00000000 00000000 00000000 00000000 00000000
    0025: 00000000 00000000 00000000 00000000 00000000 00000000 00000400 00000000
    0027: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000ffc0
    002b: 00000000 00000000 fc00c000 00000000 00000000 00000000 00000000 00000000
    002c: 00000000 00000000 00000000 ffffffff 00000000 00000000 00000000 00000000
    002d: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff
    002e: ffffffff ffffffff 00000007 00000000 00000000 00000000 00000000 00000000
    00a6: 00000000 00000000 ffffffff ffffffff bfffffff 00000000 00000000 00000000
    00a7: ffffffff ffffffff ffffffff ffffffff ffffffff 00033fff 00000000 ff800000
    00a9: 00000000 00004000 00000000 00000000 00000000 00000000 00000000 00000000
    00ab: 00000000 ffff0000 ffffffff 00000030 00000000 00000000 00000000 00000000
    00ee: 00000006 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    00f6: 00000000 00000000 00000000 00000000 00000000 00000000 00000008 00000000
    00fb: 0000007f 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    00fe: 00000000 00003fff 00000000 00000000 00000000 00000000 00000000 80000000
    00ff: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 30000000
    01f1: 00000000 00000000 00000000 00000c00 00000000 00000000 00000000 00000000
(s)
    lang: aa|ab|af|ast|av|ay|az-az|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|fi|fj|fo|fr|ff|fur|fy|ga|gd|gl|gn|gv|ha|haw|ho|hr|hu|ia|ig|id|ie|ik|io|is|it|kaa|ki|kk|kl|ku-am|kum|kv|kw|ky|la|lb|lez|ln|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|uk|uz|ve|vi|vo|vot|wa|wen|wo|xh|yap|yo|zu|ak|an|ber-dz|crh|csb|ee|fat|fil|hsb|ht|hz|jv|kab|kj|kr|ku-tr|kwm|lg|li|mn-mn|ms|na|ng|nv|pap-an|pap-aw|qu|quz|rn|rw|sc|sg|sn|su|ty|za(s)
    fontversion: 140116(i)(s)
    capability: "otlayout:DFLT otlayout:cyrl otlayout:grek otlayout:latn"(s)
    fontformat: "TrueType"(s)
    decorative: False(s)
    postscriptname: "Roboto-Regular"(s)
    color: False(s)
    symbol: False(s)
    variable: False(s)
    fonthashint: False(s)

Look at charset and lang. However, I have no idea how to represent it in a compact and understandable form. Charmap is too long; list of languages is shorter but still too long.

waldyrious commented 3 years ago

I would say that at least percentage completion in a chart like this could be pretty useful:

Unicode coverage chart