Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to LXGW WenKai TC #8714

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Update to LXGW WenKai TC #8714

wants to merge 2 commits into from

Conversation

aaronbell
Copy link
Collaborator

The previous implementation of the vert feature did not include all languagesystems, so when rendering vertical text, Safari would not realize that it needed to apply the vert feature. This minor change enables Safari to correctly rotate punctuation for vertical typesetting Traditional Chinese.

The fix was to remove all language-specific code and leave DFLT / dflt for the lookups.

Fixes #8695

The previous implementation caused Safari to not apply the `vert` feature in vertical typesetting scenarios. For this version, I've removed all language-specific code from the features (it was all duplicative anyway) and left only DFLT. `vert` now works in Safari (and elsewhere)
@aaronbell aaronbell added II CJK Chinese, Japanese, Korean scripts I Small Fix bugs fixed but nothing added labels Dec 10, 2024
Copy link

FontBakery report

fontbakery version: 0.13.0a6

Check results

[35] LXGWWenKaiMonoTC-Regular.ttf
🔥 FAIL Ensure files are not too large.
  • 🔥 FAIL

    Font file is 12.5Mb, larger than limit 9.0Mb


    [code: massive-font]
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field.

But: font copyright string has 'https://github.com/lxgw/LxgwWenkaiTC', font copyright string has 'https://github.com/lxgw/LxgwWenkaiTC', font copyright string has 'https://github.com/lxgw/LxgwWenkaiTC', OFL text has 'https://github.com/lxgw/LxgwWenkaiTC', HTML description has 'github.com/ichitenfont/inheritedglyphs' and HTML description has 'github.com/lxgw/LxgwWenkaiTC'

[code: mismatch]
🔥 FAIL METADATA.pb font.name and font.full_name fields match the values declared on the name table?
  • 🔥 FAIL

    METADATA.pb Family name "LXGW WenKai Mono TC" does not match name table entry "霞鶩文楷等寬 TC"!


    [code: familyname-mismatch]
🔥 FAIL Shapes languages in all GF glyphsets.
  • 🔥 FAIL

    GF_Greek_Expert glyphset:

FAIL messages Languages
Some base glyphs were missing: T͟H, t͟h udu_Latn (Uduk)
Some mark glyphs were missing: ◌͟ udu_Latn (Uduk) and apd_Latn (Sudanese Arabic)
Some base glyphs were missing: Ꞌ, ꞌ did_Latn (Didinga), avu_Latn (Avokaya), bex_Latn (Jur Modo), muh_Latn (Mündü), ndz_Latn (Ndogo), bav_Latn (Vengo), fvr_Latn (Fur), bcy_Latn (Bacama), cdr_Latn (Kamuku), bdh_Latn (Baka, DRC/South Sudan) and 11 more.
Some base glyphs were missing: Ɑ, Ɑ̀, Ɑ̂, Ɑ̌ byv_Latn (Medumba)
Some base glyphs were missing: ꞉, ꞊ buu_Latn (Budu)
Some base glyphs were missing: ˗, ˮ ati_Latn (Attié) and yre_Latn (Yaouré)
Some base glyphs were missing: ᵃ, ᵉ, ᵋ, ᵒ, ᵓ, ᵘ, ᶤ, ᶶ teo_Latn (Teso)
Some base glyphs were missing: ˗ god_Latn (Godié)
Some base glyphs were missing: Ꟈ, ꟈ mor_Latn (Moro)
Some base glyphs were missing: Ⱳ, ⱳ lob_Latn (Lobi) and pug_Latn (Phuie)
Some base glyphs were missing: Ɑ nza_Latn (Tigon Mbembe)
Some base glyphs were missing: Ɑ, Ɑ̀, Ɑ́, Ɑ̄, Ɑ̌ fmp_Latn (Fe’fe’)
Some base glyphs were missing: ᵽ, Ᵽ bqj_Latn (Bandial)
Some base glyphs were missing: A᷆, A᷇, E᷆, E᷇, I᷆, I᷇, O᷆, O᷇, U᷆, U᷇, a᷆, a᷇, e᷆, e᷇, i᷆, i᷇, o᷆, o᷇, u᷆, u᷇, Ɔ᷆, Ɔ᷇, Ɛ᷆, Ɛ᷇, ɔ᷆, ɔ᷇, ɛ᷆, ɛ᷇ bas_Latn (Basaa)
Some mark glyphs were missing: ◌᷆, ◌᷇ bas_Latn (Basaa)
Some base glyphs were missing: ꞋB, ꞋD, ꞋJ, ꞋNG, ꞌb, ꞌd, ꞌj, ꞌng bot_Latn (Bongo)
Some base glyphs were missing: ꞋB, ꞋD, ꞋW, ꞋY, ꞌb, ꞌd, ꞌw, ꞌy kbo_Latn (Keliko)
Some base glyphs were missing: Ꞷ, Ꞷ̃, ꞷ, ꞷ̃ kzc_Latn (Bondoukou Kulango)
Some mark glyphs were missing: ◌᷄, ◌᷅ kss_Latn (Southern Kisi)
Some base glyphs were missing: Ɤ, Ɤ̀, Ɤ́, Ɤ̂, Ɤ̄, Ɤ̋, Ɤ̏ dnj_Latn (Dan)
Some base glyphs were missing: Ɤ, Ɤ̀, Ɤ́, Ɤ̂ gov_Latn (Goo)
Some base glyphs were missing: A᷅, A᷆, E᷅, E᷆, I᷅, I᷆, O᷅, O᷆, U᷅, U᷆, a᷅, a᷆, e᷅, e᷆, i᷅, i᷆, o᷅, o᷆, u᷅, u᷆ btt_Latn (Bete-Bendi)
Some mark glyphs were missing: ◌᷅, ◌᷆ btt_Latn (Bete-Bendi)
[code: failed-language-shaping]
  • ⚠️ WARN

    GF_Greek_Expert glyphset:

WARN messages Languages
No variant glyphs were found for Eng bm_Latn (Bambara), dyu_Latn (Dyula), ig_Latn (Igbo), lg_Latn (Ganda), bkm_Latn (Kom), tnr_Latn (Ménik), gde_Latn (Gude), bsc_Latn (Bassari), ee_Latn (Ewe), ken_Latn (Kenyang) and 250 more.
Some auxiliary glyphs were missing: A᷆, E᷆, O᷅, O᷆, U᷆, a᷆, e᷆, o᷅, o᷆, u᷆, Ũ᷆, ũ᷆, Ɔ᷆, Ɩ̃᷆, Ɩ᷆, ɔ᷆, ɩ̃᷆, ɩ᷆ tcd_Latn (Tafi)
No exemplar glyphs were defined for language Eastern Gurung, Latin ggn_Latn (Eastern Gurung, Latin)
No exemplar glyphs were defined for language Mina hna_Latn (Mina)
Some auxiliary glyphs were missing: ꞌ cae_Latn (Lehar)
No variant glyphs were found for u01A9 gaa_Latn (Ga)
No variant glyphs were found for u01B7 gaa_Latn (Ga)
No exemplar glyphs were defined for language Seki syi_Latn (Seki)
No exemplar glyphs were defined for language Atsam cch_Latn (Atsam)
No variant glyphs were found for u0181 lom_Latn (Loma, Liberia) and dnj_Latn (Dan)
Some auxiliary glyphs were missing: A᷄, A᷅, E᷄, E᷅, I᷄, I᷅, O᷄, O᷅, U᷄, U᷅, a᷄, a᷅, e᷄, e᷅, i᷄, i᷅, o᷄, o᷅, u᷄, u᷅, Ɔ᷄, Ɔ᷅, Ɛ᷄, Ɛ᷅, ɔ᷄, ɔ᷅, ɛ᷄, ɛ᷅ kss_Latn (Southern Kisi)
No exemplar glyphs were defined for language Koro kfo_Latn (Koro)
No variant glyphs were found for u028B tod_Latn (Toma)
No variant glyphs were found for u01B2 tod_Latn (Toma)
Some auxiliary glyphs were missing: ˗, ˮ, ꞊ dnj_Latn (Dan)
No exemplar glyphs were defined for language Mbunga mgy_Latn (Mbunga)
No exemplar glyphs were defined for language Amo amo_Latn (Amo)
Some auxiliary glyphs were missing: Ɐ, Ɐ̀, Ɐ́, Ɐ̂ kib_Latn (Koalib)
[code: warning-language-shaping]
🔥 FAIL Check family name for GF Guide compliance.
  • 🔥 FAIL

    "霞鶩文楷等寬 TC" contains the following characters which are not allowed: "寬文楷等霞鶩".


    [code: forbidden-characters]

  • 🔥 FAIL

    "霞鶩文楷等寬 TC" doesn't start with an uppercase letter.


    [code: starts-with-not-uppercase]

⚠️ WARN Check mark characters are in GDEF mark glyph class.
  • ⚠️ WARN

    The following mark characters could be in the GDEF mark glyph class:
    acutecomb (U+0301), dotbelowcomb (U+0323), gravecomb (U+0300), hookabovecomb (U+0309), tildecomb (U+0303), u0302 (U+0302), u0304 (U+0304), u0305 (U+0305), u0306 (U+0306), u0307 (U+0307) and 49 more.

Use -F or --full-lists to disable shortening of long lists.

[code: mark-chars]
⚠️ WARN Checking correctness of monospaced metadata.
  • ⚠️ WARN

    The OpenType spec recommends at https://learn.microsoft.com/en-us/typography/opentype/spec/recom#hhea-table that hhea.numberOfHMetrics be set to 3 but this font has 22430 instead.
    Please read hhea.numberOfHMetrics not correct for monospace fonttools/fonttools#3014 to decide whether this makes sense for your font.


    [code: bad-numberOfHMetrics]

  • ⚠️ WARN

    Font is monospaced but 1765 glyphs (7.85%) have a different width. You should check the widths of: ['A', 'Aacute', 'Abreve', 'Acircumflex', 'Adieresis', 'Agrave', 'Amacron', 'Aogonek', 'Aring', 'Aringacute', 'Atilde', 'AE', 'AEacute', 'u01E2', 'B', 'C', 'Cacute', 'Ccaron', 'Ccedilla', 'Ccircumflex', 'Cdotaccent', 'D', 'Dcaron', 'Dcroat', 'Eth', 'E', 'Eacute', 'Ebreve', 'Ecaron', 'Ecircumflex', 'Edieresis', 'Edotaccent', 'Egrave', 'Emacron', 'Eogonek', 'u018F', 'F', 'G', 'Gbreve', 'Gcaron', 'Gcircumflex', 'Gdotaccent', 'u021C', 'H', 'Hbar', 'Hcircumflex', 'I', 'IJ', 'Iacute', 'Ibreve', 'Icircumflex', 'Idieresis', 'Idotaccent', 'Igrave', 'Imacron', 'Iogonek', 'Itilde', 'J', 'Jcircumflex', 'K', 'L', 'Lacute', 'Lcaron', 'Ldot', 'Lslash', 'M', 'N', 'Nacute', 'Ncaron', 'Ntilde', 'Eng', 'O', 'Oacute', 'Obreve', 'Ocircumflex', 'Odieresis', 'Ograve', 'Ohorn', 'Ohungarumlaut', 'Omacron', 'Oslash', 'Oslashacute', 'Otilde', 'OE', 'P', 'Thorn', 'Q', 'R', 'Racute', 'Rcaron', 'S', 'Sacute', 'Scaron', 'Scedilla', 'Scircumflex', 'u1E9E', 'T', 'Tbar', 'Tcaron', 'U', 'Uacute', 'Ubreve', 'Ucircumflex', 'Udieresis', 'Ugrave', 'Uhorn', 'Uhungarumlaut', 'Umacron', 'Uogonek', 'Uring', 'Utilde', 'V', 'u0194', 'W', 'Wacute', 'Wcircumflex', 'Wdieresis', 'Wgrave', 'X', 'Y', 'Yacute', 'Ycircumflex', 'Ydieresis', 'Ygrave', 'Z', 'Zacute', 'Zcaron', 'Zdotaccent', 'u0122', 'u0136', 'u013B', 'u0145', 'u0156', 'u0162', 'u0181', 'u0182', 'u0184', 'u0186', 'u0187', 'u0189', 'u018A', 'u018B', 'u018E', 'u0190', 'u0191', 'u0193', 'u0196', 'u0197', 'u0198', 'u019C', 'u019D', 'u019F', 'u01A2', 'u01A4', 'u01A6', 'u01A7', 'u01A9', 'u01AC', 'u01AE', 'u01B1', 'u01B2', 'u01B3', 'u01B5', 'u01B7', 'u01B8', 'u01BC', 'u01C4', 'u01C5', 'u01C7', 'u01C8', 'u01CA', 'u01CB', 'u01CD', 'u01CF', 'u01D1', 'u01D3', 'u01D5', 'u01D7', 'u01D9', 'u01DB', 'u01DE', 'u01E0', 'u01E4', 'u01E8', 'u01EA', 'u01EC', 'u01EE', 'u01F1', 'u01F2', 'u01F4', 'u01F6', 'u01F7', 'u01F8', 'u0200', 'u0202', 'u0204', 'u0206', 'u0208', 'u020A', 'u020C', 'u020E', 'u0210', 'u0212', 'u0214', 'u0216', 'u0218', 'u021A', 'u021E', 'u0220', 'u0222', 'u0224', 'u0226', 'u0228', 'u022A', 'u022C', 'u022E', 'u0230', 'u0232', 'u023A', 'u023B', 'u023D', 'u023E', 'u0241', 'u0243', 'u0244', 'u0245', 'u0246', 'u0248', 'u024A', 'u024C', 'u024E', 'u1E00', 'u1E02', 'u1E04', 'u1E06', 'u1E08', 'u1E0A', 'u1E0C', 'u1E0E', 'u1E10', 'u1E12', 'u1E14', 'u1E16', 'u1E18', 'u1E1A', 'u1E1C', 'u1E1E', 'u1E20', 'u1E22', 'u1E24', 'u1E26', 'u1E28', 'u1E2A', 'u1E2C', 'u1E2E', 'u1E30', 'u1E32', 'u1E34', 'u1E36', 'u1E38', 'u1E3A', 'u1E3C', 'u1E3E', 'u1E40', 'u1E42', 'u1E44', 'u1E46', 'u1E48', 'u1E4A', 'u1E4C', 'u1E4E', 'u1E50', 'u1E52', 'u1E54', 'u1E56', 'u1E58', 'u1E5A', 'u1E5C', 'u1E5E', 'u1E60', 'u1E62', 'u1E64', 'u1E66', 'u1E68', 'u1E6A', 'u1E6C', 'u1E6E', 'u1E70', 'u1E72', 'u1E74', 'u1E76', 'u1E78', 'u1E7A', 'u1E7C', 'u1E7E', 'u1E86', 'u1E88', 'u1E8A', 'u1E8C', 'u1E8E', 'u1E90', 'u1E92', 'u1E94', 'u1EA0', 'u1EA2', 'u1EA4', 'u1EA6', 'u1EA8', 'u1EAA', 'u1EAC', 'u1EAE', 'u1EB0', 'u1EB2', 'u1EB4', 'u1EB6', 'u1EB8', 'u1EBA', 'u1EBC', 'u1EBE', 'u1EC0', 'u1EC2', 'u1EC4', 'u1EC6', 'u1EC8', 'u1ECA', 'u1ECC', 'u1ECE', 'u1ED0', 'u1ED2', 'u1ED4', 'u1ED6', 'u1ED8', 'u1EDA', 'u1EDC', 'u1EDE', 'u1EE0', 'u1EE2', 'u1EE4', 'u1EE6', 'u1EE8', 'u1EEA', 'u1EEC', 'u1EEE', 'u1EF0', 'u1EF4', 'u1EF6', 'u1EF8', 'u1EFA', 'uni2C64', 'uniA78D', 'uniA7AA', 'uniA7AD', 'uniA7B2', 'uniA7B3', 'uniA7B4', 'a', 'aacute', 'abreve', 'acircumflex', 'adieresis', 'agrave', 'amacron', 'aogonek', 'aring', 'aringacute', 'atilde', 'ae', 'aeacute', 'u01E3', 'b', 'c', 'cacute', 'ccaron', 'ccedilla', 'ccircumflex', 'cdotaccent', 'd', 'dcaron', 'dcroat', 'eth', 'e', 'eacute', 'ebreve', 'ecaron', 'ecircumflex', 'edieresis', 'edotaccent', 'egrave', 'emacron', 'eogonek', 'u0259', 'u025A', 'f', 'g', 'gbreve', 'gcaron', 'gcircumflex', 'gdotaccent', 'u021D', 'h', 'hbar', 'hcircumflex', 'i', 'dotlessi', 'iacute', 'ibreve', 'icircumflex', 'idieresis', 'igrave', 'imacron', 'iogonek', 'itilde', 'ij', 'j', 'u0237', 'jcircumflex', 'k', 'kgreenlandic', 'l', 'lacute', 'lcaron', 'ldot', 'lslash', 'm', 'n', 'nacute', 'napostrophe', 'ncaron', 'ntilde', 'eng', 'o', 'oacute', 'obreve', 'ocircumflex', 'odieresis', 'ograve', 'ohorn', 'ohungarumlaut', 'omacron', 'oslash', 'oslashacute', 'otilde', 'oe', 'p', 'thorn', 'q', 'r', 'racute', 'rcaron', 's', 'sacute', 'scaron', 'scedilla', 'scircumflex', 'germandbls', 'longs', 't', 'tbar', 'tcaron', 'u', 'u0123', 'u0137', 'u013C', 'u0146', 'u0157', 'u0163', 'u0180', 'u0183', 'u0185', 'u0188', 'u018C', 'u018D', 'u0195', 'u0199', 'u019A', 'u019B', 'u019E', 'u01A3', 'u01A5', 'u01A8', 'u01AA', 'u01AB', 'u01AD', 'u01B4', 'u01B6', 'u01B9', 'u01BA', 'u01BD', 'u01BE', 'u01BF', 'u01C6', 'u01C9', 'u01CC', 'u01CE', 'u01D0', 'u01D2', 'u01D4', 'u01D6', 'u01D8', 'u01DA', 'u01DC', 'u01DD', 'u01DF', 'u01E1', 'u01E5', 'u01E9', 'u01EB', 'u01ED', 'u01EF', 'u01F0', 'u01F3', 'u01F5', 'u01F9', 'u0201', 'u0203', 'u0205', 'u0207', 'u0209', 'u020B', 'u020D', 'u020F', 'u0211', 'u0213', 'u0215', 'u0217', 'u0219', 'u021B', 'u021F', 'u0221', 'u0223', 'u0225', 'u0227', 'u0229', 'u022B', 'u022D', 'u022F', 'u0231', 'u0233', 'u0234', 'u0235', 'u0236', 'u0238', 'u0239', 'u023C', 'u023F', 'u0240', 'u0242', 'u0247', 'u0249', 'u024B', 'u024D', 'u024F', 'u0250', 'u0251', 'u0252', 'u0253', 'u0254', 'u0255', 'u0256', 'u0257', 'u0258', 'u025B', 'u025D', 'u025E', 'u025F', 'u0260', 'u0261', 'u0262', 'u0263', 'u0264', 'u0265', 'u0266', 'u0267', 'u0268', 'u0269', 'u026A', 'u026B', 'u026C', 'u026D', 'u026E', 'u026F', 'u0270', 'u0271', 'u0272', 'u0273', 'u0274', 'u0275', 'u0276', 'u0277', 'u0278', 'u0279', 'u027A', 'u027B', 'u027C', 'u027D', 'u027E', 'u027F', 'u0280', 'u0281', 'u0282', 'u0283', 'u0284', 'u0285', 'u0286', 'u0287', 'u0288', 'u0289', 'u028A', 'u028B', 'u028C', 'u028D', 'u028E', 'u028F', 'u0290', 'u0291', 'u0292', 'u0293', 'u0294', 'u0295', 'u0296', 'u0297', 'u0298', 'u0299', 'u029A', 'u029B', 'u029C', 'u029D', 'u029E', 'u029F', 'u02A0', 'u02A1', 'u02A2', 'u02A3', 'u02A4', 'u02A5', 'u02A6', 'u02A7', 'u02A8', 'u02A9', 'u02AA', 'u02AB', 'u02AC', 'u02AD', 'u02AE', 'u02AF', 'u1D00', 'u1D04', 'u1D05', 'u1D06', 'u1D07', 'u1D08', 'u1D0A', 'u1D0B', 'u1D0C', 'u1D0D', 'u1D0E', 'u1D0F', 'u1D10', 'u1D14', 'u1D15', 'u1D18', 'u1D19', 'u1D1A', 'u1D1B', 'u1D1C', 'u1D20', 'u1D21', 'u1D22', 'u1D23', 'u1D25', 'u1E01', 'u1E03', 'u1E05', 'u1E07', 'u1E09', 'u1E0B', 'u1E0D', 'u1E0F', 'u1E11', 'u1E13', 'u1E15', 'u1E17', 'u1E19', 'u1E1B', 'u1E1D', 'u1E1F', 'u1E21', 'u1E23', 'u1E25', 'u1E27', 'u1E29', 'u1E2B', 'u1E2D', 'u1E2F', 'u1E31', 'u1E33', 'u1E35', 'u1E37', 'u1E39', 'u1E3B', 'u1E3D', 'u1E3F', 'u1E41', 'u1E43', 'u1E45', 'u1E47', 'u1E49', 'u1E4B', 'u1E4D', 'u1E4F', 'u1E51', 'u1E53', 'u1E55', 'u1E57', 'u1E59', 'u1E5B', 'u1E5D', 'u1E5F', 'u1E61', 'u1E63', 'u1E65', 'u1E67', 'u1E69', 'u1E6B', 'u1E6D', 'u1E6F', 'u1E71', 'u1E73', 'u1E75', 'u1E77', 'u1E79', 'u1E7B', 'u1E7D', 'u1E7F', 'u1E87', 'u1E89', 'u1E8B', 'u1E8D', 'u1E8F', 'u1E91', 'u1E93', 'u1E95', 'u1E96', 'u1E97', 'u1E98', 'u1E99', 'u1E9A', 'u1E9B', 'u1E9C', 'u1E9D', 'u1E9F', 'u1EA1', 'u1EA3', 'u1EA5', 'u1EA7', 'u1EA9', 'u1EAB', 'u1EAD', 'u1EAF', 'u1EB1', 'u1EB3', 'u1EB5', 'u1EB7', 'u1EB9', 'u1EBB', 'u1EBD', 'u1EBF', 'u1EC1', 'u1EC3', 'u1EC5', 'u1EC7', 'u1EC9', 'u1ECB', 'u1ECD', 'u1ECF', 'u1ED1', 'u1ED3', 'u1ED5', 'u1ED7', 'u1ED9', 'u1EDB', 'u1EDD', 'u1EDF', 'u1EE1', 'u1EE3', 'u1EE5', 'u1EE7', 'u1EE9', 'u1EEB', 'u1EED', 'u1EEF', 'u1EF1', 'u1EF5', 'u1EF7', 'u1EF9', 'u1EFB', 'uA730', 'uA731', 'uA7B5', 'uAB53', 'uacute', 'ubreve', 'ucircumflex', 'udieresis', 'ugrave', 'uhorn', 'uhungarumlaut', 'umacron', 'uni2C65', 'uni2C66', 'uogonek', 'uring', 'utilde', 'v', 'w', 'wacute', 'wcircumflex', 'wdieresis', 'wgrave', 'x', 'y', 'yacute', 'ycircumflex', 'ydieresis', 'ygrave', 'z', 'zacute', 'zcaron', 'zdotaccent', 'uFB00', 'uFB01', 'uFB02', 'uFB03', 'uFB04', 'u2090', 'u2091', 'u2092', 'u2093', 'u2094', 'ordfeminine', 'ordmasculine', 'u01BB', 'u01C0', 'u01C1', 'u01C2', 'u01C3', 'u02B0', 'u02B2', 'u02B3', 'u02B7', 'u02B8', 'u02E1', 'u02E2', 'u02E3', 'u2071', 'u207F', 'u0410', 'u0411', 'u0412', 'u0413', 'u0403', 'u0490', 'u0492', 'u0414', 'u0415', 'u0400', 'u0401', 'u0416', 'u0417', 'u0418', 'u0419', 'u040D', 'u041A', 'u040C', 'u041B', 'u041C', 'u041D', 'u041E', 'u041F', 'u0420', 'u0421', 'u0422', 'u0423', 'u040E', 'u0424', 'u0425', 'u0427', 'u0426', 'u0428', 'u0429', 'u040F', 'u042C', 'u042B', 'u042A', 'u0409', 'u040A', 'u0405', 'u0404', 'u042D', 'u0406', 'u0407', 'u0408', 'u040B', 'u042E', 'u042F', 'u0402', 'u0462', 'u046A', 'u0472', 'u0474', 'u0478', 'u0496', 'u049A', 'u049C', 'u04A2', 'u04AE', 'u04B0', 'u04B2', 'u04B8', 'u04BA', 'u04C9', 'u04D8', 'u04DE', 'u04E0', 'u04E2', 'u04E4', 'u04E6', 'u04E8', 'u04EA', 'u04EE', 'u04F0', 'u04F2', 'u04F4', 'u04FE', 'u0430', 'u0431', 'u0432', 'u0433', 'u0453', 'u0491', 'u0493', 'u0434', 'u0435', 'u0450', 'u0451', 'u0436', 'u0437', 'u0438', 'u0439', 'u045D', 'u043A', 'u045C', 'u043B', 'u043C', 'u043D', 'u043E', 'u043F', 'u0440', 'u0441', 'u0442', 'u0443', 'u045E', 'u0444', 'u0445', 'u0447', 'u0446', 'u0448', 'u0449', 'u045F', 'u044C', 'u044B', 'u044A', 'u0459', 'u045A', 'u0455', 'u0454', 'u044D', 'u0456', 'u0457', 'u0458', 'u045B', 'u044E', 'u044F', 'u0452', 'u0463', 'u046B', 'u0473', 'u0475', 'u0479', 'u0497', 'u049B', 'u049D', 'u04A3', 'u04AF', 'u04B1', 'u04B3', 'u04B9', 'u04BB', 'u04CA', 'u04D9', 'u04DF', 'u04E1', 'u04E3', 'u04E5', 'u04E7', 'u04E9', 'u04EB', 'u04EF', 'u04F1', 'u04F3', 'uni04F5', 'u04FF', 'Alpha', 'Beta', 'Gamma', 'u0394', 'Epsilon', 'Zeta', 'Eta', 'Theta', 'Iota', 'Kappa', 'Lambda', 'Mu', 'Nu', 'Xi', 'Omicron', 'Pi', 'Rho', 'Sigma', 'Tau', 'Upsilon', 'Phi', 'Chi', 'Psi', 'u03A9', 'Alphatonos', 'Epsilontonos', 'Etatonos', 'Iotatonos', 'Omicrontonos', 'Upsilontonos', 'Omegatonos', 'Iotadieresis', 'Upsilondieresis', 'u0370', 'u0372', 'u0376', 'u03D8', 'u03DA', 'u03DC', 'u03DE', 'u03E0', 'u03CF', 'uni03D2', 'u03D3', 'u03D4', 'u03F4', 'u03F7', 'u03F9', 'u03FA', 'u03FD', 'u03FE', 'u03FF', 'u1F08', 'u1F09', 'u1F0A', 'u1F0B', 'u1F0C', 'u1F0D', 'u1F0E', 'u1F0F', 'u1FBA', 'u1FBB', 'u1FB8', 'u1FB9', 'u1FBC', 'u1F88', 'u1F89', 'u1F8A', 'u1F8B', 'u1F8C', 'u1F8D', 'u1F8E', 'u1F8F', 'u1F18', 'u1F19', 'u1F1A', 'u1F1B', 'u1F1C', 'u1F1D', 'u1FC8', 'u1FC9', 'u1F28', 'u1F29', 'u1F2A', 'u1F2B', 'u1F2C', 'u1F2D', 'u1F2E', 'u1F2F', 'u1FCA', 'u1FCB', 'u1FCC', 'u1F98', 'u1F99', 'u1F9A', 'u1F9B', 'u1F9C', 'u1F9D', 'u1F9E', 'u1F9F', 'u1F38', 'u1F39', 'u1F3A', 'u1F3B', 'u1F3C', 'u1F3D', 'u1F3E', 'u1F3F', 'u1FDA', 'u1FDB', 'u1FD8', 'u1FD9', 'u1F48', 'u1F49', 'u1F4A', 'u1F4B', 'u1F4C', 'u1F4D', 'u1FF8', 'u1FF9', 'u1FEC', 'u1F59', 'u1F5B', 'u1F5D', 'u1F5F', 'u1FEA', 'u1FEB', 'u1FE8', 'u1FE9', 'u1F68', 'u1F69', 'u1F6A', 'u1F6B', 'u1F6C', 'u1F6D', 'u1F6E', 'u1F6F', 'u1FFA', 'u1FFB', 'u1FFC', 'u1FA8', 'u1FA9', 'u1FAA', 'u1FAB', 'u1FAC', 'u1FAD', 'u1FAE', 'u1FAF', 'u037F', 'alpha', 'beta', 'gamma', 'delta', 'epsilon', 'zeta', 'eta', 'theta', 'iota', 'kappa', 'lambda', 'u03BC', 'nu', 'xi', 'omicron', 'pi', 'rho', 'uni03C2', 'sigma', 'tau', 'upsilon', 'phi', 'chi', 'psi', 'omega', 'iotatonos', 'iotadieresis', 'iotadieresistonos', 'upsilontonos', 'upsilondieresis', 'upsilondieresistonos', 'omicrontonos', 'omegatonos', 'alphatonos', 'epsilontonos', 'etatonos', 'u0371', 'u0373', 'u0377', 'u037B', 'u037C', 'u037D', 'u03D9', 'u03DB', 'u03DD', 'u03DF', 'u03E1', 'u03D7', 'u03D0', 'uni03D1', 'uni03D5', 'uni03D6', 'u03F0', 'u03F1', 'u03F2', 'u03F3', 'u03F5', 'u03F8', 'u03FB', 'u03FC', 'u1F00', 'u1F01', 'u1F02', 'u1F03', 'u1F04', 'u1F05', 'u1F06', 'u1F07', 'u1F70', 'u1F71', 'u1FB6', 'u1FB0', 'u1FB1', 'u1FB3', 'u1FB2', 'u1FB4', 'u1F80', 'u1F81', 'u1F82', 'u1F83', 'u1F84', 'u1F85', 'u1F86', 'u1F87', 'u1FB7', 'u1F10', 'u1F11', 'u1F12', 'u1F13', 'u1F14', 'u1F15', 'u1F72', 'u1F73', 'u1F20', 'u1F21', 'u1F22', 'u1F23', 'u1F24', 'u1F25', 'u1F26', 'u1F27', 'u1F74', 'u1F75', 'u1FC6', 'u1FC3', 'u1FC2', 'u1FC4', 'u1F90', 'u1F91', 'u1F92', 'u1F93', 'u1F94', 'u1F95', 'u1F96', 'u1F97', 'u1FC7', 'u1F30', 'u1F31', 'u1F32', 'u1F33', 'u1F34', 'u1F35', 'u1F36', 'u1F37', 'u1F76', 'u1F77', 'u1FD6', 'u1FD0', 'u1FD1', 'u1FD2', 'u1FD3', 'u1FD7', 'u1F40', 'u1F41', 'u1F42', 'u1F43', 'u1F44', 'u1F45', 'u1F78', 'u1F79', 'u1FE4', 'u1FE5', 'u1F50', 'u1F51', 'u1F52', 'u1F53', 'u1F54', 'u1F55', 'u1F56', 'u1F57', 'u1F7A', 'u1F7B', 'u1FE6', 'u1FE0', 'u1FE1', 'u1FE2', 'u1FE3', 'u1FE7', 'u1F60', 'u1F61', 'u1F62', 'u1F63', 'u1F64', 'u1F65', 'u1F66', 'u1F67', 'u1F7C', 'u1F7D', 'u1FF6', 'u1FF3', 'u1FF2', 'u1FF4', 'u1FA0', 'u1FA1', 'u1FA2', 'u1FA3', 'u1FA4', 'u1FA5', 'u1FA6', 'u1FA7', 'u1FF7', 'u1FBE', 'u037A', 'u31B4', 'u31B5', 'u31B6', 'u31B7', 'u2132', 'u210A', 'u210E', 'u210F', 'u214E', 'u2095', 'u2096', 'u2097', 'u2098', 'u2099', 'u209A', 'u209B', 'u209C', 'u1D39', 'u1D3A', 'u1D3C', 'u1D3E', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'fraction', 'u2080', 'u2081', 'u2082', 'u2083', 'u2084', 'u2085', 'u2086', 'u2087', 'u2088', 'u2089', 'u2070', 'u00B9', 'u00B2', 'u00B3', 'u2074', 'u2075', 'u2076', 'u2077', 'u2078', 'u2079', 'space', 'u00A0', 'u2004', 'u2005', 'u2006', 'u2007', 'u2008', 'u2009', 'u200A', 'anoteleia', 'u037E', 'period', 'comma', 'colon', 'semicolon', 'exclam', 'exclamdown', 'question', 'questiondown', 'bullet', 'asterisk', 'numbersign', 'slash', 'backslash', 'u203D', 'u2E2E', 'hyphen', 'u2E3A', 'u2E3B', 'u2E40', 'underscore', 'u208D', 'u208E', 'parenleft', 'parenright', 'braceleft', 'braceright', 'bracketleft', 'bracketright', 'u207D', 'u207E', 'quotesinglbase', 'quotedblbase', 'quotedblleft', 'quotedblright', 'quoteleft', 'quoteright', 'quotereversed', 'u201F', 'guillemotleft', 'guillemotright', 'guilsinglleft', 'guilsinglright', 'u2034', 'u2036', 'u2037', 'quotedbl', 'quotesingle', 'u02E0', 'florin', 'u0374', 'u0375', 'u2129', 'u03F6', 'u0E3F', 'u02E5', 'u02E6', 'u02E7', 'u02E8', 'u02E9', 'u02F0', 'u02F7', 'u02DE', 'u02E4', 'u275B', 'u275C', 'u275D', 'u275E', 'u275F', 'u2760', 'at', 'ampersand', 'paragraph', 'section', 'copyright', 'registered', 'degree', 'minute', 'second', 'bar', 'brokenbar', 'u2113', 'u1F12F', 'u218A', 'u218B', 'u2373', 'u2374', 'u2375', 'u2376', 'u2377', 'u2378', 'u2379', 'u237A', 'u23E8', 'u2422', 'Euro', 'cent', 'colonmonetary', 'currency', 'dollar', 'dong', 'franc', 'lira', 'sterling', 'u20A0', 'u20A2', 'u20A6', 'u20A8', 'u20A9', 'u20AA', 'u20AD', 'u20AE', 'u20B4', 'u20B9', 'u20BD', 'yen', 'asciitilde', 'dotmath', 'plus', 'minus', 'multiply', 'divide', 'equal', 'greater', 'less', 'plusminus', 'logicalnot', 'asciicircum', 'product', 'summation', 'radical', 'partialdiff', 'uni03BC', 'percent', 'periodcentered', 'u2052', 'u207A', 'u207B', 'u207C', 'u208A', 'u208B', 'u208C', 'u2141', 'u2142', 'u2143', 'u2144', 'u2215', 'u2216', 'u221B', 'u221C', 'tonos', 'dieresistonos', 'u1FBF', 'u1FBD', 'u1FFE', 'u1FCD', 'u1FDD', 'u1FCE', 'u1FDE', 'u1FCF', 'u1FDF', 'u1FED', 'u1FEE', 'u1FC1', 'u1FEF', 'u1FFD', 'u1FC0', 'dieresis', 'grave', 'acute', 'u02EA', 'u02EB', 'breve', 'macron', 'u02B9', 'u02BA', 'u02BB', 'u02BC', 'u02BD', 'u02C0', 'u02C1', 'u02C8', 'u02CC', 'u02D0', 'u02D1', 'u2E55', 'u2E56', 'u31BB', 'uA4D0', 'uA4D1', 'uA4D2', 'uA4D3', 'uA4D4', 'uA4D5', 'uA4D6', 'uA4D7', 'uA4D8', 'uA4D9', 'uA4DA', 'uA4DB', 'uA4DC', 'uA4DD', 'uA4DE', 'uA4DF', 'uA4E0', 'uA4E1', 'uA4E2', 'uA4E3', 'uA4E4', 'uA4E5', 'uA4E6', 'uA4E7', 'uA4E8', 'uA4E9', 'uA4EA', 'uA4EB', 'uA4EC', 'uA4ED', 'uA4EE', 'uA4EF', 'uA4F0', 'uA4F1', 'uA4F2', 'uA4F3', 'uA4F4', 'uA4F5', 'uA4F6', 'uA4F7', 'uA4F8', 'uA4F9', 'uA4FA', 'uA4FB', 'uA4FC', 'uA4FD', 'uA4FE', 'uA4FF', 'uniA7AE', 'uA7AF', 'u11FB0', 'glyph33707', 'glyph33708', 'glyph33709', 'glyph33710', 'glyph33711', 'glyph33712', 'glyph33713', 'glyph33714', 'glyph33715', 'glyph33716', 'glyph33717', 'glyph33718', 'glyph33719', 'glyph33720', 'glyph33721', 'glyph33722', 'glyph33723', 'glyph33724', 'glyph33725', 'glyph33726', 'colon.calt', 'a.salt', 'nonmarkingreturn', 'cedilla', 'circumflex', 'dotaccent', 'figuredash', 'hungarumlaut', 'ogonek', 'ring', 'tilde', 'uni025C', 'uni02C9', 'uni02CD', 'uni02CE', 'uni02CF', 'uni02EC', 'uni02EF', 'uni02F3', 'uni2000', 'uni2002', 'uni2035', 'uni203E', 'uni2051', 'uni2201', 'uni220A', 'uni220D', 'uni2303', 'uni2423', 'uni2772', 'uni2773', 'uni27E8', 'uni27E9', 'uni27EA', 'uni27EB', 'uni303F', 'uniFF61', 'uniFF62', 'uniFF63', 'uniFF64', 'uniFF65', 'uniFF66', 'uniFF67', 'uniFF68', 'uniFF69', 'uniFF6A', 'uniFF6B', 'uniFF6C', 'uniFF6D', 'uniFF6E', 'uniFF6F', 'uniFF70', 'uniFF71', 'uniFF72', 'uniFF73', 'uniFF74', 'uniFF75', 'uniFF76', 'uniFF77', 'uniFF78', 'uniFF79', 'uniFF7A', 'uniFF7B', 'uniFF7C', 'uniFF7D', 'uniFF7E', 'uniFF7F', 'uniFF80', 'uniFF81', 'uniFF82', 'uniFF83', 'uniFF84', 'uniFF85', 'uniFF86', 'uniFF87', 'uniFF88', 'uniFF89', 'uniFF8A', 'uniFF8B', 'uniFF8C', 'uniFF8D', 'uniFF8E', 'uniFF8F', 'uniFF90', 'uniFF91', 'uniFF92', 'uniFF93', 'uniFF94', 'uniFF95', 'uniFF96', 'uniFF97', 'uniFF98', 'uniFF99', 'uniFF9A', 'uniFF9B', 'uniFF9C', 'uniFF9D', 'uniFF9E', 'uniFF9F', 'uniFFE8']


    [code: mono-outliers]

⚠️ WARN Check if OS/2 xAvgCharWidth is correct.
  • ⚠️ WARN

    OS/2 xAvgCharWidth is 500 but it should be 961 which corresponds to the average of the widths of all glyphs in the font.


    [code: xAvgCharWidth-wrong]
⚠️ WARN Check accent of Lcaron, dcaron, lcaron, tcaron
  • ⚠️ WARN

    Lcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    dcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    lcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    tcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

⚠️ WARN Does the font contain chws and vchw features?
⚠️ WARN Check if each glyph has the recommended amount of contours.
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

The following glyphs do not have the recommended number of contours:

- Glyph name: germandbls	Contours detected: 2	Expected: 1
  • Glyph name: OE Contours detected: 3 Expected: 2

  • Glyph name: u01C6 Contours detected: 3 Expected: 4

  • Glyph name: u01E5 Contours detected: 3 Expected: 2

  • Glyph name: u01F3 Contours detected: 2 Expected: 3

  • Glyph name: u0238 Contours detected: 4 Expected: 3

  • Glyph name: u023A Contours detected: 4 Expected: 3

  • Glyph name: u1E7A Contours detected: 2 Expected: 4

  • Glyph name: u203D Contours detected: 3 Expected: 2

  • Glyph name: uni2047 Contours detected: 3 Expected: 4

  • 7 more.

Use -F or --full-lists to disable shortening of long lists.

[code: contour-count]
⚠️ WARN Does GPOS table have kerning information? This check skips monospaced fonts as defined by post.isFixedPitch value
  • ⚠️ WARN

    GPOS table lacks kerning information.


    [code: lacks-kern-info]
⚠️ WARN Are there caret positions declared for every ligature?
  • ⚠️ WARN

    This font lacks caret position values for ligature glyphs on its GDEF table.


    [code: lacks-caret-pos]
⚠️ WARN Check math signs have the same width.
  • ⚠️ WARN

    The most common width is 1000 among a set of 59 math glyphs.
    The following math glyphs have a different width, though:

Width = 500: plusminus, multiply, less, logicalnot, plus, minus, greater, equal, asciitilde, divide

[code: width-outliers]
⚠️ WARN Check there are no overlapping path segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* u0238 (U+0238): B<<273.0,13.0>-<272.0,13.0>-<273.0,9.0>> has the same coordinates as a previous segment.

* u2091 (U+2091): L<<189.0,100.0>--<185.0,100.0>> has the same coordinates as a previous segment.

* uni2674 (U+2674): B<<453.0,243.0>-<452.0,242.0>-<452.0,241.0>> has the same coordinates as a previous segment.

* uni2678 (U+2678): B<<478.0,399.0>-<476.0,400.0>-<479.0,401.0>> has the same coordinates as a previous segment.

* uni2678 (U+2678): B<<478.0,399.0>-<478.0,400.0>-<479.0,401.0>> has the same coordinates as a previous segment.

* u4EB9 (U+4EB9): B<<90.0,-100.0>-<109.0,-136.0>-<78.0,-74.0>> has the same coordinates as a previous segment.

* u63FC (U+63FC): B<<391.0,280.0>-<391.0,280.0>-<391.0,280.0>> has the same coordinates as a previous segment.

* u953A (U+953A): B<<139.0,567.0>-<139.0,568.0>-<140.0,570.0>> has the same coordinates as a previous segment.

* u9555 (U+9555): B<<150.0,574.0>-<150.0,575.0>-<151.0,577.0>> has the same coordinates as a previous segment.

* u9556 (U+9556): B<<151.0,584.0>-<152.0,586.0>-<154.0,588.0>> has the same coordinates as a previous segment.

* u98DD (U+98DD): B<<405.0,60.0>-<400.0,60.0>-<401.0,58.0>> has the same coordinates as a previous segment.

* u98DD (U+98DD): B<<855.0,60.0>-<852.0,60.0>-<852.0,59.0>> has the same coordinates as a previous segment.

[code: overlapping-path-segments]

⚠️ WARN Check font contains no unreachable glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- acutecomb.1

- nonmarkingreturn

- one_slash_one_one.afrc

- three_slash_one_one.afrc

- two_slash_one_one.afrc

- uni0308.1

[code: unreachable-glyphs]

⚠️ WARN Glyph names are all valid?
  • ⚠️ WARN

    The following glyph names may be too long for some legacy systems which may expect a maximum 31-characters length limit:
    uni30AA30F330B030B930C830ED30FC30E0.dlig, uni30AA30F330B030B930C830ED30FC30E0.dlig.1, uni30AD30ED30EA30C330C830EB.dlig, uni30AD30ED30EA30C330C830EB.dlig.1, uni30D830AF30C830D130B930AB30EB.dlig and uni30D830AF30C830D130B930AB30EB.dlig.1


    [code: legacy-long-names]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
  • ⚠️ WARN

    Family metadata at ofl/lxgwwenkaimonotc does not have an article.


    [code: lacks-article]
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • ⚠️ WARN

    It seems that LXGW is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry.


    [code: profile-not-found]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
  • ⚠️ WARN

    The following codepoints supported by the font are not covered by
    any subsets defined in the font's metadata file, and will never
    be served. You can solve this by either manually adding additional
    subset declarations to METADATA.pb, or by editing the glyphset
    definitions.

  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: cherokee, coptic, math, tifinagh
  • U+0305 COMBINING OVERLINE: try adding one of: coptic, math, gothic, elbasan, glagolitic
  • U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh
  • U+0307 COMBINING DOT ABOVE: try adding one of: coptic, math, syriac, tai-le, duployan, todhri, tifinagh, canadian-aboriginal, old-permic, hebrew, malayalam
  • U+030A COMBINING RING ABOVE: try adding one of: duployan, syriac
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le 13790 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: chinese-hongkong, cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, lisu, menu, vietnamese

[code: unreachable-subsetting]
⚠️ WARN On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.
  • ⚠️ WARN

    The DESCRIPTION.en_us.html file in this family has not changed in comparison to the latest font release on the google/fonts github repo.
    Please consider mentioning note-worthy improvements made to the family recently.


    [code: description-not-updated]
⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.
  • ⚠️ WARN

    The dot of soft dotted characters used in orthographies must disappear in the following strings: i̊ i̋ i̍ j̀ j́ j̃ j̄ j̈ j̑ į̀ į́ į̂ į̃ į̄ į̌ ɨ̀ ɨ́ ɨ̂ ɨ̃ ɨ̄ ɨ̈ ɨ̋ ɨ̌ ɨ̏ ɨ̧̀ ɨ̧́ ɨ̧̂ ɨ̧̌ ɨ̱̀ ɨ̱́ ɨ̱̈ і́ ḭ̀ ḭ́ ḭ̄ ị̀ ị́ ị̂ ị̃ ị̄

The dot of soft dotted characters should disappear in other cases, for example: i̅ i̇ i̽ i̖̅ i̖̇ i̖̊ i̖̋ i̖̍ i̖̽ i̗̅ i̗̇ i̗̊ i̗̋ i̗̍ i̗̽ i̘̅ i̘̇ i̘̊ i̘̋ i̘̍

Your font fully covers the following languages that require the soft-dotted feature: Western Krahn (Latn, 97,800 speakers), Dutch (Latn, 31,709,104 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Kom (Latn, 360,685 speakers), Makaa (Latn, 221,000 speakers), Ebira (Latn, 2,200,000 speakers), Han (Latn, 6 speakers), Vute (Latn, 21,000 speakers), Teke-Ebo (Latn, 260,000 speakers), Ijo, Southeast (Latn, 2,471,000 speakers), Southern Tutchone (Latn, 65 speakers), Belarusian (Cyrl, 10,064,517 speakers), Igbo (Latn, 27,823,640 speakers), Gulay (Latn, 250,478 speakers), Ma’di (Latn, 584,000 speakers), Nzakara (Latn, 50,000 speakers), Mango (Latn, 77,000 speakers), Abua (Latn, 25,000 speakers), Ekpeye (Latn, 226,000 speakers), Koonzime (Latn, 40,000 speakers), Mundani (Latn, 34,000 speakers), Northern Tutchone (Latn, 85 speakers), Lugbara (Latn, 2,200,000 speakers), South Central Banda (Latn, 244,000 speakers), Nateni (Latn, 100,000 speakers), Ikwere (Latn, 717,000 speakers), Aghem (Latn, 38,843 speakers), Bafut (Latn, 158,146 speakers), Navajo (Latn, 166,319 speakers), Longto (Latn, 5,000 speakers), Zapotec (Latn, 490,000 speakers), Ngbaka (Latn, 1,020,000 speakers), Kaska (Latn, 125 speakers), Yala (Latn, 200,000 speakers), Sar (Latn, 500,000 speakers), Lithuanian (Latn, 2,357,094 speakers), Dii (Latn, 71,000 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Cicipu (Latn, 44,000 speakers), Ejagham (Latn, 120,000 speakers), Mfumte (Latn, 79,000 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Bete-Bendi (Latn, 100,000 speakers), Basaa (Latn, 332,940 speakers), Heiltsuk (Latn, 300 speakers), Avokaya (Latn, 100,000 speakers), Fur (Latn, 1,230,163 speakers), Southern Kisi (Latn, 360,000 speakers), Keliko (Latn, 63,000 speakers), Dan (Latn, 1,099,244 speakers).

[code: soft-dotted]
⚠️ WARN Check the direction of the outermost contour in each glyph
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* .notdef has a counter-clockwise outer contour

* A (U+0041) has a counter-clockwise outer contour

* AE (U+00C6) has a counter-clockwise outer contour

* AEacute (U+01FC) has a counter-clockwise outer contour

* AEacute (U+01FC) has a counter-clockwise outer contour

* A_M.dlig has a counter-clockwise outer contour

* A_M.dlig has a counter-clockwise outer contour

* Aacute (U+00C1) has a counter-clockwise outer contour

* Aacute (U+00C1) has a counter-clockwise outer contour

* Abreve (U+0102) has a counter-clockwise outer contour

* 75621 more.

Use -F or --full-lists to disable shortening of long lists.

[code: ccw-outer-contour]
⚠️ WARN Do outlines contain any jaggy segments?
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* W (U+0057): B<<194.0,600.0>-<170.0,390.0>-<147.0,144.0>>/B<<147.0,144.0>-<125.0,447.0>-<106.0,622.0>> = 9.49419690603658

* W (U+0057): L<<356.0,178.0>--<352.0,137.0>>/B<<352.0,137.0>-<330.0,369.0>-<295.0,623.0>> = 10.989219917820343

* Wacute (U+1E82): B<<194.0,600.0>-<170.0,390.0>-<147.0,144.0>>/B<<147.0,144.0>-<125.0,447.0>-<106.0,622.0>> = 9.49419690603658

* Wacute (U+1E82): L<<356.0,178.0>--<352.0,137.0>>/B<<352.0,137.0>-<330.0,369.0>-<295.0,623.0>> = 10.989219917820343

* Wcircumflex (U+0174): B<<194.0,600.0>-<170.0,390.0>-<147.0,144.0>>/B<<147.0,144.0>-<125.0,447.0>-<106.0,622.0>> = 9.49419690603658

* Wcircumflex (U+0174): L<<356.0,178.0>--<352.0,137.0>>/B<<352.0,137.0>-<330.0,369.0>-<295.0,623.0>> = 10.989219917820343

* Wdieresis (U+1E84): B<<194.0,600.0>-<170.0,390.0>-<147.0,144.0>>/B<<147.0,144.0>-<125.0,447.0>-<106.0,622.0>> = 9.49419690603658

* Wdieresis (U+1E84): L<<356.0,178.0>--<352.0,137.0>>/B<<352.0,137.0>-<330.0,369.0>-<295.0,623.0>> = 10.989219917820343

* Wgrave (U+1E80): B<<194.0,600.0>-<170.0,390.0>-<147.0,144.0>>/B<<147.0,144.0>-<125.0,447.0>-<106.0,622.0>> = 9.49419690603658

* Wgrave (U+1E80): L<<356.0,178.0>--<352.0,137.0>>/B<<352.0,137.0>-<330.0,369.0>-<295.0,623.0>> = 10.989219917820343

* 1578 more.

Use -F or --full-lists to disable shortening of long lists.

[code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines?
  • ⚠️ WARN

    The following glyphs have semi-vertical/semi-horizontal lines:

* Eng (U+014A): L<<377.0,589.0>--<375.0,132.0>>

* I (U+0049): L<<213.0,629.0>--<212.0,107.0>>

* IJ (U+0132): L<<110.0,629.0>--<109.0,107.0>>

* Iacute (U+00CD): L<<213.0,629.0>--<212.0,107.0>>

* Ibreve (U+012C): L<<213.0,629.0>--<212.0,107.0>>

* Icircumflex (U+00CE): L<<213.0,629.0>--<212.0,107.0>>

* Idieresis (U+00CF): L<<213.0,629.0>--<212.0,107.0>>

* Idotaccent (U+0130): L<<213.0,629.0>--<212.0,107.0>>

* Igrave (U+00CC): L<<213.0,629.0>--<212.0,107.0>>

* Imacron (U+012A): L<<213.0,629.0>--<212.0,107.0>>

* 35793 more.

Use -F or --full-lists to disable shortening of long lists.

[code: found-semi-vertical]
ℹ️ INFO List all superfamily filepaths
  • ℹ️ INFO

    ofl/lxgwwenkaimonotc


    [code: family-path]
ℹ️ INFO EPAR table present in font?
ℹ️ INFO Show hinting filesize impact.
  • ℹ️ INFO

    Hinting filesize impact:

ofl/lxgwwenkaimonotc/LXGWWenKaiMonoTC-Regular.ttf
Dehinted Size 12.5Mb
Hinted Size 12.5Mb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables?
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- BASE

- GSUB

- gasp

- vhea

- vmtx

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL?
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
  • ℹ️ INFO

    This font doesn't have an ARTICLE.en_us.html file.


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
ℹ️ INFO Ensure fonts have ScriptLangTags declared on the 'meta' table.
  • ℹ️ INFO

    Latn,Hant


    [code: dlng-tag]

  • ℹ️ INFO

    Latn,Hant,ja,el,Cyrl


    [code: slng-tag]

ℹ️ INFO Font has old ttfautohint applied?
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.331']


    [code: version-not-detected]
[37] LXGWWenKaiMonoTC-Light.ttf
💥 ERROR Are there any misaligned on-curve points?
  • 💥 ERROR

    Failed with IndexError: list index out of range

  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/fontbakery/checkrunner.py", line 213, in _run_check
    subresults = list(subresults)
  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/fontbakery/checks/outline.py", line 94, in check_outline_alignment_miss
    for node in p.asNodelist():
  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/beziers/path/__init__.py", line 150, in asNodelist
    nl = self.activeRepresentation.toNodelist()
  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/beziers/path/representations/Segment.py", line 23, in toNodelist
    first = self.segments[0][0]

[code: failed-check]

🔥 FAIL Ensure files are not too large.
  • 🔥 FAIL

    Font file is 13.1Mb, larger than limit 9.0Mb


    [code: massive-font]
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field.

But: font copyright string has 'https://github.com/lxgw/LxgwWenkaiTC', font copyright string has 'https://github.com/lxgw/LxgwWenkaiTC', font copyright string has 'https://github.com/lxgw/LxgwWenkaiTC', OFL text has 'https://github.com/lxgw/LxgwWenkaiTC', HTML description has 'github.com/ichitenfont/inheritedglyphs' and HTML description has 'github.com/lxgw/LxgwWenkaiTC'

[code: mismatch]
🔥 FAIL METADATA.pb font.name and font.full_name fields match the values declared on the name table?
  • 🔥 FAIL

    METADATA.pb Family name "LXGW WenKai Mono TC" does not match name table entry "霞鶩文楷等寬 TC"!


    [code: familyname-mismatch]
🔥 FAIL Shapes languages in all GF glyphsets.
  • 🔥 FAIL

    GF_Greek_Expert glyphset:

FAIL messages Languages
Some base glyphs were missing: T͟H, t͟h udu_Latn (Uduk)
Some mark glyphs were missing: ◌͟ udu_Latn (Uduk) and apd_Latn (Sudanese Arabic)
Some base glyphs were missing: Ꞌ, ꞌ did_Latn (Didinga), avu_Latn (Avokaya), bex_Latn (Jur Modo), muh_Latn (Mündü), ndz_Latn (Ndogo), bav_Latn (Vengo), fvr_Latn (Fur), bcy_Latn (Bacama), cdr_Latn (Kamuku), bdh_Latn (Baka, DRC/South Sudan) and 11 more.
Some base glyphs were missing: Ɑ, Ɑ̀, Ɑ̂, Ɑ̌ byv_Latn (Medumba)
Some base glyphs were missing: ꞉, ꞊ buu_Latn (Budu)
Some base glyphs were missing: ˗, ˮ ati_Latn (Attié) and yre_Latn (Yaouré)
Some base glyphs were missing: ᵃ, ᵉ, ᵋ, ᵒ, ᵓ, ᵘ, ᶤ, ᶶ teo_Latn (Teso)
Some base glyphs were missing: ˗ god_Latn (Godié)
Some base glyphs were missing: Ꟈ, ꟈ mor_Latn (Moro)
Shaper didn't attach dotbelowcomb to G tuq_Latn (Tedaga)
Some base glyphs were missing: Ⱳ, ⱳ lob_Latn (Lobi) and pug_Latn (Phuie)
Some base glyphs were missing: Ɑ nza_Latn (Tigon Mbembe)
Some base glyphs were missing: Ɑ, Ɑ̀, Ɑ́, Ɑ̄, Ɑ̌ fmp_Latn (Fe’fe’)
Some base glyphs were missing: ᵽ, Ᵽ bqj_Latn (Bandial)
Some base glyphs were missing: A᷆, A᷇, E᷆, E᷇, I᷆, I᷇, O᷆, O᷇, U᷆, U᷇, a᷆, a᷇, e᷆, e᷇, i᷆, i᷇, o᷆, o᷇, u᷆, u᷇, Ɔ᷆, Ɔ᷇, Ɛ᷆, Ɛ᷇, ɔ᷆, ɔ᷇, ɛ᷆, ɛ᷇ bas_Latn (Basaa)
Some mark glyphs were missing: ◌᷆, ◌᷇ bas_Latn (Basaa)
Some base glyphs were missing: ꞋB, ꞋD, ꞋJ, ꞋNG, ꞌb, ꞌd, ꞌj, ꞌng bot_Latn (Bongo)
Some base glyphs were missing: ꞋB, ꞋD, ꞋW, ꞋY, ꞌb, ꞌd, ꞌw, ꞌy kbo_Latn (Keliko)
Some base glyphs were missing: Ꞷ, Ꞷ̃, ꞷ, ꞷ̃ kzc_Latn (Bondoukou Kulango)
Some mark glyphs were missing: ◌᷄, ◌᷅ kss_Latn (Southern Kisi)
Some base glyphs were missing: Ɤ, Ɤ̀, Ɤ́, Ɤ̂, Ɤ̄, Ɤ̋, Ɤ̏ dnj_Latn (Dan)
Some base glyphs were missing: Ɤ, Ɤ̀, Ɤ́, Ɤ̂ gov_Latn (Goo)
Some base glyphs were missing: A᷅, A᷆, E᷅, E᷆, I᷅, I᷆, O᷅, O᷆, U᷅, U᷆, a᷅, a᷆, e᷅, e᷆, i᷅, i᷆, o᷅, o᷆, u᷅, u᷆ btt_Latn (Bete-Bendi)
Some mark glyphs were missing: ◌᷅, ◌᷆ btt_Latn (Bete-Bendi)
[code: failed-language-shaping]
  • ⚠️ WARN

    GF_Greek_Expert glyphset:

WARN messages Languages
No variant glyphs were found for Eng bm_Latn (Bambara), dyu_Latn (Dyula), ig_Latn (Igbo), lg_Latn (Ganda), bkm_Latn (Kom), tnr_Latn (Ménik), gde_Latn (Gude), bsc_Latn (Bassari), ee_Latn (Ewe), ken_Latn (Kenyang) and 250 more.
Some auxiliary glyphs were missing: A᷆, E᷆, O᷅, O᷆, U᷆, a᷆, e᷆, o᷅, o᷆, u᷆, Ũ᷆, ũ᷆, Ɔ᷆, Ɩ̃᷆, Ɩ᷆, ɔ᷆, ɩ̃᷆, ɩ᷆ tcd_Latn (Tafi)
No exemplar glyphs were defined for language Eastern Gurung, Latin ggn_Latn (Eastern Gurung, Latin)
No exemplar glyphs were defined for language Mina hna_Latn (Mina)
Some auxiliary glyphs were missing: ꞌ cae_Latn (Lehar)
No variant glyphs were found for u01A9 gaa_Latn (Ga)
No variant glyphs were found for u01B7 gaa_Latn (Ga)
No exemplar glyphs were defined for language Seki syi_Latn (Seki)
No exemplar glyphs were defined for language Atsam cch_Latn (Atsam)
No variant glyphs were found for u0181 lom_Latn (Loma, Liberia) and dnj_Latn (Dan)
Some auxiliary glyphs were missing: A᷄, A᷅, E᷄, E᷅, I᷄, I᷅, O᷄, O᷅, U᷄, U᷅, a᷄, a᷅, e᷄, e᷅, i᷄, i᷅, o᷄, o᷅, u᷄, u᷅, Ɔ᷄, Ɔ᷅, Ɛ᷄, Ɛ᷅, ɔ᷄, ɔ᷅, ɛ᷄, ɛ᷅ kss_Latn (Southern Kisi)
No exemplar glyphs were defined for language Koro kfo_Latn (Koro)
No variant glyphs were found for u028B tod_Latn (Toma)
No variant glyphs were found for u01B2 tod_Latn (Toma)
Some auxiliary glyphs were missing: ˗, ˮ, ꞊ dnj_Latn (Dan)
No exemplar glyphs were defined for language Mbunga mgy_Latn (Mbunga)
No exemplar glyphs were defined for language Amo amo_Latn (Amo)
Some auxiliary glyphs were missing: Ɐ, Ɐ̀, Ɐ́, Ɐ̂ kib_Latn (Koalib)
[code: warning-language-shaping]
🔥 FAIL Check family name for GF Guide compliance.
  • 🔥 FAIL

    "霞鶩文楷等寬 TC" contains the following characters which are not allowed: "寬文楷等霞鶩".


    [code: forbidden-characters]

  • 🔥 FAIL

    "霞鶩文楷等寬 TC" doesn't start with an uppercase letter.


    [code: starts-with-not-uppercase]

⚠️ WARN Check mark characters are in GDEF mark glyph class.
  • ⚠️ WARN

    The following mark characters could be in the GDEF mark glyph class:
    acutecomb (U+0301), dotbelowcomb (U+0323), gravecomb (U+0300), hookabovecomb (U+0309), tildecomb (U+0303), u0302 (U+0302), u0304 (U+0304), u0305 (U+0305), u0306 (U+0306), u0307 (U+0307) and 49 more.

Use -F or --full-lists to disable shortening of long lists.

[code: mark-chars]
⚠️ WARN Checking correctness of monospaced metadata.
  • ⚠️ WARN

    The OpenType spec recommends at https://learn.microsoft.com/en-us/typography/opentype/spec/recom#hhea-table that hhea.numberOfHMetrics be set to 3 but this font has 22428 instead.
    Please read hhea.numberOfHMetrics not correct for monospace fonttools/fonttools#3014 to decide whether this makes sense for your font.


    [code: bad-numberOfHMetrics]

  • ⚠️ WARN

    Font is monospaced but 1765 glyphs (7.85%) have a different width. You should check the widths of: ['A', 'Aacute', 'Abreve', 'Acircumflex', 'Adieresis', 'Agrave', 'Amacron', 'Aogonek', 'Aring', 'Aringacute', 'Atilde', 'AE', 'AEacute', 'u01E2', 'B', 'C', 'Cacute', 'Ccaron', 'Ccedilla', 'Ccircumflex', 'Cdotaccent', 'D', 'Dcaron', 'Dcroat', 'Eth', 'E', 'Eacute', 'Ebreve', 'Ecaron', 'Ecircumflex', 'Edieresis', 'Edotaccent', 'Egrave', 'Emacron', 'Eogonek', 'u018F', 'F', 'G', 'Gbreve', 'Gcaron', 'Gcircumflex', 'Gdotaccent', 'u021C', 'H', 'Hbar', 'Hcircumflex', 'I', 'IJ', 'Iacute', 'Ibreve', 'Icircumflex', 'Idieresis', 'Idotaccent', 'Igrave', 'Imacron', 'Iogonek', 'Itilde', 'J', 'Jcircumflex', 'K', 'L', 'Lacute', 'Lcaron', 'Ldot', 'Lslash', 'M', 'N', 'Nacute', 'Ncaron', 'Ntilde', 'Eng', 'O', 'Oacute', 'Obreve', 'Ocircumflex', 'Odieresis', 'Ograve', 'Ohorn', 'Ohungarumlaut', 'Omacron', 'Oslash', 'Oslashacute', 'Otilde', 'OE', 'P', 'Thorn', 'Q', 'R', 'Racute', 'Rcaron', 'S', 'Sacute', 'Scaron', 'Scedilla', 'Scircumflex', 'u1E9E', 'T', 'Tbar', 'Tcaron', 'U', 'Uacute', 'Ubreve', 'Ucircumflex', 'Udieresis', 'Ugrave', 'Uhorn', 'Uhungarumlaut', 'Umacron', 'Uogonek', 'Uring', 'Utilde', 'V', 'u0194', 'W', 'Wacute', 'Wcircumflex', 'Wdieresis', 'Wgrave', 'X', 'Y', 'Yacute', 'Ycircumflex', 'Ydieresis', 'Ygrave', 'Z', 'Zacute', 'Zcaron', 'Zdotaccent', 'u0122', 'u0136', 'u013B', 'u0145', 'u0156', 'u0162', 'u0181', 'u0182', 'u0184', 'u0186', 'u0187', 'u0189', 'u018A', 'u018B', 'u018E', 'u0190', 'u0191', 'u0193', 'u0196', 'u0197', 'u0198', 'u019C', 'u019D', 'u019F', 'u01A2', 'u01A4', 'u01A6', 'u01A7', 'u01A9', 'u01AC', 'u01AE', 'u01B1', 'u01B2', 'u01B3', 'u01B5', 'u01B7', 'u01B8', 'u01BC', 'u01C4', 'u01C5', 'u01C7', 'u01C8', 'u01CA', 'u01CB', 'u01CD', 'u01CF', 'u01D1', 'u01D3', 'u01D5', 'u01D7', 'u01D9', 'u01DB', 'u01DE', 'u01E0', 'u01E4', 'u01E8', 'u01EA', 'u01EC', 'u01EE', 'u01F1', 'u01F2', 'u01F4', 'u01F6', 'u01F7', 'u01F8', 'u0200', 'u0202', 'u0204', 'u0206', 'u0208', 'u020A', 'u020C', 'u020E', 'u0210', 'u0212', 'u0214', 'u0216', 'u0218', 'u021A', 'u021E', 'u0220', 'u0222', 'u0224', 'u0226', 'u0228', 'u022A', 'u022C', 'u022E', 'u0230', 'u0232', 'u023A', 'u023B', 'u023D', 'u023E', 'u0241', 'u0243', 'u0244', 'u0245', 'u0246', 'u0248', 'u024A', 'u024C', 'u024E', 'u1E00', 'u1E02', 'u1E04', 'u1E06', 'u1E08', 'u1E0A', 'u1E0C', 'u1E0E', 'u1E10', 'u1E12', 'u1E14', 'u1E16', 'u1E18', 'u1E1A', 'u1E1C', 'u1E1E', 'u1E20', 'u1E22', 'u1E24', 'u1E26', 'u1E28', 'u1E2A', 'u1E2C', 'u1E2E', 'u1E30', 'u1E32', 'u1E34', 'u1E36', 'u1E38', 'u1E3A', 'u1E3C', 'u1E3E', 'u1E40', 'u1E42', 'u1E44', 'u1E46', 'u1E48', 'u1E4A', 'u1E4C', 'u1E4E', 'u1E50', 'u1E52', 'u1E54', 'u1E56', 'u1E58', 'u1E5A', 'u1E5C', 'u1E5E', 'u1E60', 'u1E62', 'u1E64', 'u1E66', 'u1E68', 'u1E6A', 'u1E6C', 'u1E6E', 'u1E70', 'u1E72', 'u1E74', 'u1E76', 'u1E78', 'u1E7A', 'u1E7C', 'u1E7E', 'u1E86', 'u1E88', 'u1E8A', 'u1E8C', 'u1E8E', 'u1E90', 'u1E92', 'u1E94', 'u1EA0', 'u1EA2', 'u1EA4', 'u1EA6', 'u1EA8', 'u1EAA', 'u1EAC', 'u1EAE', 'u1EB0', 'u1EB2', 'u1EB4', 'u1EB6', 'u1EB8', 'u1EBA', 'u1EBC', 'u1EBE', 'u1EC0', 'u1EC2', 'u1EC4', 'u1EC6', 'u1EC8', 'u1ECA', 'u1ECC', 'u1ECE', 'u1ED0', 'u1ED2', 'u1ED4', 'u1ED6', 'u1ED8', 'u1EDA', 'u1EDC', 'u1EDE', 'u1EE0', 'u1EE2', 'u1EE4', 'u1EE6', 'u1EE8', 'u1EEA', 'u1EEC', 'u1EEE', 'u1EF0', 'u1EF4', 'u1EF6', 'u1EF8', 'u1EFA', 'uni2C64', 'uniA78D', 'uniA7AA', 'uniA7AD', 'uniA7B2', 'uniA7B3', 'uniA7B4', 'a', 'aacute', 'abreve', 'acircumflex', 'adieresis', 'agrave', 'amacron', 'aogonek', 'aring', 'aringacute', 'atilde', 'ae', 'aeacute', 'u01E3', 'b', 'c', 'cacute', 'ccaron', 'ccedilla', 'ccircumflex', 'cdotaccent', 'd', 'dcaron', 'dcroat', 'eth', 'e', 'eacute', 'ebreve', 'ecaron', 'ecircumflex', 'edieresis', 'edotaccent', 'egrave', 'emacron', 'eogonek', 'u0259', 'u025A', 'f', 'g', 'gbreve', 'gcaron', 'gcircumflex', 'gdotaccent', 'u021D', 'h', 'hbar', 'hcircumflex', 'i', 'dotlessi', 'iacute', 'ibreve', 'icircumflex', 'idieresis', 'igrave', 'imacron', 'iogonek', 'itilde', 'ij', 'j', 'u0237', 'jcircumflex', 'k', 'kgreenlandic', 'l', 'lacute', 'lcaron', 'ldot', 'lslash', 'm', 'n', 'nacute', 'napostrophe', 'ncaron', 'ntilde', 'eng', 'o', 'oacute', 'obreve', 'ocircumflex', 'odieresis', 'ograve', 'ohorn', 'ohungarumlaut', 'omacron', 'oslash', 'oslashacute', 'otilde', 'oe', 'p', 'thorn', 'q', 'r', 'racute', 'rcaron', 's', 'sacute', 'scaron', 'scedilla', 'scircumflex', 'germandbls', 'longs', 't', 'tbar', 'tcaron', 'u', 'u0123', 'u0137', 'u013C', 'u0146', 'u0157', 'u0163', 'u0180', 'u0183', 'u0185', 'u0188', 'u018C', 'u018D', 'u0195', 'u0199', 'u019A', 'u019B', 'u019E', 'u01A3', 'u01A5', 'u01A8', 'u01AA', 'u01AB', 'u01AD', 'u01B4', 'u01B6', 'u01B9', 'u01BA', 'u01BD', 'u01BE', 'u01BF', 'u01C6', 'u01C9', 'u01CC', 'u01CE', 'u01D0', 'u01D2', 'u01D4', 'u01D6', 'u01D8', 'u01DA', 'u01DC', 'u01DD', 'u01DF', 'u01E1', 'u01E5', 'u01E9', 'u01EB', 'u01ED', 'u01EF', 'u01F0', 'u01F3', 'u01F5', 'u01F9', 'u0201', 'u0203', 'u0205', 'u0207', 'u0209', 'u020B', 'u020D', 'u020F', 'u0211', 'u0213', 'u0215', 'u0217', 'u0219', 'u021B', 'u021F', 'u0221', 'u0223', 'u0225', 'u0227', 'u0229', 'u022B', 'u022D', 'u022F', 'u0231', 'u0233', 'u0234', 'u0235', 'u0236', 'u0238', 'u0239', 'u023C', 'u023F', 'u0240', 'u0242', 'u0247', 'u0249', 'u024B', 'u024D', 'u024F', 'u0250', 'u0251', 'u0252', 'u0253', 'u0254', 'u0255', 'u0256', 'u0257', 'u0258', 'u025B', 'u025D', 'u025E', 'u025F', 'u0260', 'u0261', 'u0262', 'u0263', 'u0264', 'u0265', 'u0266', 'u0267', 'u0268', 'u0269', 'u026A', 'u026B', 'u026C', 'u026D', 'u026E', 'u026F', 'u0270', 'u0271', 'u0272', 'u0273', 'u0274', 'u0275', 'u0276', 'u0277', 'u0278', 'u0279', 'u027A', 'u027B', 'u027C', 'u027D', 'u027E', 'u027F', 'u0280', 'u0281', 'u0282', 'u0283', 'u0284', 'u0285', 'u0286', 'u0287', 'u0288', 'u0289', 'u028A', 'u028B', 'u028C', 'u028D', 'u028E', 'u028F', 'u0290', 'u0291', 'u0292', 'u0293', 'u0294', 'u0295', 'u0296', 'u0297', 'u0298', 'u0299', 'u029A', 'u029B', 'u029C', 'u029D', 'u029E', 'u029F', 'u02A0', 'u02A1', 'u02A2', 'u02A3', 'u02A4', 'u02A5', 'u02A6', 'u02A7', 'u02A8', 'u02A9', 'u02AA', 'u02AB', 'u02AC', 'u02AD', 'u02AE', 'u02AF', 'u1D00', 'u1D04', 'u1D05', 'u1D06', 'u1D07', 'u1D08', 'u1D0A', 'u1D0B', 'u1D0C', 'u1D0D', 'u1D0E', 'u1D0F', 'u1D10', 'u1D14', 'u1D15', 'u1D18', 'u1D19', 'u1D1A', 'u1D1B', 'u1D1C', 'u1D20', 'u1D21', 'u1D22', 'u1D23', 'u1D25', 'u1E01', 'u1E03', 'u1E05', 'u1E07', 'u1E09', 'u1E0B', 'u1E0D', 'u1E0F', 'u1E11', 'u1E13', 'u1E15', 'u1E17', 'u1E19', 'u1E1B', 'u1E1D', 'u1E1F', 'u1E21', 'u1E23', 'u1E25', 'u1E27', 'u1E29', 'u1E2B', 'u1E2D', 'u1E2F', 'u1E31', 'u1E33', 'u1E35', 'u1E37', 'u1E39', 'u1E3B', 'u1E3D', 'u1E3F', 'u1E41', 'u1E43', 'u1E45', 'u1E47', 'u1E49', 'u1E4B', 'u1E4D', 'u1E4F', 'u1E51', 'u1E53', 'u1E55', 'u1E57', 'u1E59', 'u1E5B', 'u1E5D', 'u1E5F', 'u1E61', 'u1E63', 'u1E65', 'u1E67', 'u1E69', 'u1E6B', 'u1E6D', 'u1E6F', 'u1E71', 'u1E73', 'u1E75', 'u1E77', 'u1E79', 'u1E7B', 'u1E7D', 'u1E7F', 'u1E87', 'u1E89', 'u1E8B', 'u1E8D', 'u1E8F', 'u1E91', 'u1E93', 'u1E95', 'u1E96', 'u1E97', 'u1E98', 'u1E99', 'u1E9A', 'u1E9B', 'u1E9C', 'u1E9D', 'u1E9F', 'u1EA1', 'u1EA3', 'u1EA5', 'u1EA7', 'u1EA9', 'u1EAB', 'u1EAD', 'u1EAF', 'u1EB1', 'u1EB3', 'u1EB5', 'u1EB7', 'u1EB9', 'u1EBB', 'u1EBD', 'u1EBF', 'u1EC1', 'u1EC3', 'u1EC5', 'u1EC7', 'u1EC9', 'u1ECB', 'u1ECD', 'u1ECF', 'u1ED1', 'u1ED3', 'u1ED5', 'u1ED7', 'u1ED9', 'u1EDB', 'u1EDD', 'u1EDF', 'u1EE1', 'u1EE3', 'u1EE5', 'u1EE7', 'u1EE9', 'u1EEB', 'u1EED', 'u1EEF', 'u1EF1', 'u1EF5', 'u1EF7', 'u1EF9', 'u1EFB', 'uA730', 'uA731', 'uA7B5', 'uAB53', 'uacute', 'ubreve', 'ucircumflex', 'udieresis', 'ugrave', 'uhorn', 'uhungarumlaut', 'umacron', 'uni2C65', 'uni2C66', 'uogonek', 'uring', 'utilde', 'v', 'w', 'wacute', 'wcircumflex', 'wdieresis', 'wgrave', 'x', 'y', 'yacute', 'ycircumflex', 'ydieresis', 'ygrave', 'z', 'zacute', 'zcaron', 'zdotaccent', 'uFB00', 'uFB01', 'uFB02', 'uFB03', 'uFB04', 'u2090', 'u2091', 'u2092', 'u2093', 'u2094', 'ordfeminine', 'ordmasculine', 'u01BB', 'u01C0', 'u01C1', 'u01C2', 'u01C3', 'u02B0', 'u02B2', 'u02B3', 'u02B7', 'u02B8', 'u02E1', 'u02E2', 'u02E3', 'u2071', 'u207F', 'u0410', 'u0411', 'u0412', 'u0413', 'u0403', 'u0490', 'u0492', 'u0414', 'u0415', 'u0400', 'u0401', 'u0416', 'u0417', 'u0418', 'u0419', 'u040D', 'u041A', 'u040C', 'u041B', 'u041C', 'u041D', 'u041E', 'u041F', 'u0420', 'u0421', 'u0422', 'u0423', 'u040E', 'u0424', 'u0425', 'u0427', 'u0426', 'u0428', 'u0429', 'u040F', 'u042C', 'u042B', 'u042A', 'u0409', 'u040A', 'u0405', 'u0404', 'u042D', 'u0406', 'u0407', 'u0408', 'u040B', 'u042E', 'u042F', 'u0402', 'u0462', 'u046A', 'u0472', 'u0474', 'u0478', 'u0496', 'u049A', 'u049C', 'u04A2', 'u04AE', 'u04B0', 'u04B2', 'u04B8', 'u04BA', 'u04C9', 'u04D8', 'u04DE', 'u04E0', 'u04E2', 'u04E4', 'u04E6', 'u04E8', 'u04EA', 'u04EE', 'u04F0', 'u04F2', 'u04F4', 'u04FE', 'u0430', 'u0431', 'u0432', 'u0433', 'u0453', 'u0491', 'u0493', 'u0434', 'u0435', 'u0450', 'u0451', 'u0436', 'u0437', 'u0438', 'u0439', 'u045D', 'u043A', 'u045C', 'u043B', 'u043C', 'u043D', 'u043E', 'u043F', 'u0440', 'u0441', 'u0442', 'u0443', 'u045E', 'u0444', 'u0445', 'u0447', 'u0446', 'u0448', 'u0449', 'u045F', 'u044C', 'u044B', 'u044A', 'u0459', 'u045A', 'u0455', 'u0454', 'u044D', 'u0456', 'u0457', 'u0458', 'u045B', 'u044E', 'u044F', 'u0452', 'u0463', 'u046B', 'u0473', 'u0475', 'u0479', 'u0497', 'u049B', 'u049D', 'u04A3', 'u04AF', 'u04B1', 'u04B3', 'u04B9', 'u04BB', 'u04CA', 'u04D9', 'u04DF', 'u04E1', 'u04E3', 'u04E5', 'u04E7', 'u04E9', 'u04EB', 'u04EF', 'u04F1', 'u04F3', 'uni04F5', 'u04FF', 'Alpha', 'Beta', 'Gamma', 'u0394', 'Epsilon', 'Zeta', 'Eta', 'Theta', 'Iota', 'Kappa', 'Lambda', 'Mu', 'Nu', 'Xi', 'Omicron', 'Pi', 'Rho', 'Sigma', 'Tau', 'Upsilon', 'Phi', 'Chi', 'Psi', 'u03A9', 'Alphatonos', 'Epsilontonos', 'Etatonos', 'Iotatonos', 'Omicrontonos', 'Upsilontonos', 'Omegatonos', 'Iotadieresis', 'Upsilondieresis', 'u0370', 'u0372', 'u0376', 'u03D8', 'u03DA', 'u03DC', 'u03DE', 'u03E0', 'u03CF', 'uni03D2', 'u03D3', 'u03D4', 'u03F4', 'u03F7', 'u03F9', 'u03FA', 'u03FD', 'u03FE', 'u03FF', 'u1F08', 'u1F09', 'u1F0A', 'u1F0B', 'u1F0C', 'u1F0D', 'u1F0E', 'u1F0F', 'u1FBA', 'u1FBB', 'u1FB8', 'u1FB9', 'u1FBC', 'u1F88', 'u1F89', 'u1F8A', 'u1F8B', 'u1F8C', 'u1F8D', 'u1F8E', 'u1F8F', 'u1F18', 'u1F19', 'u1F1A', 'u1F1B', 'u1F1C', 'u1F1D', 'u1FC8', 'u1FC9', 'u1F28', 'u1F29', 'u1F2A', 'u1F2B', 'u1F2C', 'u1F2D', 'u1F2E', 'u1F2F', 'u1FCA', 'u1FCB', 'u1FCC', 'u1F98', 'u1F99', 'u1F9A', 'u1F9B', 'u1F9C', 'u1F9D', 'u1F9E', 'u1F9F', 'u1F38', 'u1F39', 'u1F3A', 'u1F3B', 'u1F3C', 'u1F3D', 'u1F3E', 'u1F3F', 'u1FDA', 'u1FDB', 'u1FD8', 'u1FD9', 'u1F48', 'u1F49', 'u1F4A', 'u1F4B', 'u1F4C', 'u1F4D', 'u1FF8', 'u1FF9', 'u1FEC', 'u1F59', 'u1F5B', 'u1F5D', 'u1F5F', 'u1FEA', 'u1FEB', 'u1FE8', 'u1FE9', 'u1F68', 'u1F69', 'u1F6A', 'u1F6B', 'u1F6C', 'u1F6D', 'u1F6E', 'u1F6F', 'u1FFA', 'u1FFB', 'u1FFC', 'u1FA8', 'u1FA9', 'u1FAA', 'u1FAB', 'u1FAC', 'u1FAD', 'u1FAE', 'u1FAF', 'u037F', 'alpha', 'beta', 'gamma', 'delta', 'epsilon', 'zeta', 'eta', 'theta', 'iota', 'kappa', 'lambda', 'u03BC', 'nu', 'xi', 'omicron', 'pi', 'rho', 'uni03C2', 'sigma', 'tau', 'upsilon', 'phi', 'chi', 'psi', 'omega', 'iotatonos', 'iotadieresis', 'iotadieresistonos', 'upsilontonos', 'upsilondieresis', 'upsilondieresistonos', 'omicrontonos', 'omegatonos', 'alphatonos', 'epsilontonos', 'etatonos', 'u0371', 'u0373', 'u0377', 'u037B', 'u037C', 'u037D', 'u03D9', 'u03DB', 'u03DD', 'u03DF', 'u03E1', 'u03D7', 'u03D0', 'uni03D1', 'uni03D5', 'uni03D6', 'u03F0', 'u03F1', 'u03F2', 'u03F3', 'u03F5', 'u03F8', 'u03FB', 'u03FC', 'u1F00', 'u1F01', 'u1F02', 'u1F03', 'u1F04', 'u1F05', 'u1F06', 'u1F07', 'u1F70', 'u1F71', 'u1FB6', 'u1FB0', 'u1FB1', 'u1FB3', 'u1FB2', 'u1FB4', 'u1F80', 'u1F81', 'u1F82', 'u1F83', 'u1F84', 'u1F85', 'u1F86', 'u1F87', 'u1FB7', 'u1F10', 'u1F11', 'u1F12', 'u1F13', 'u1F14', 'u1F15', 'u1F72', 'u1F73', 'u1F20', 'u1F21', 'u1F22', 'u1F23', 'u1F24', 'u1F25', 'u1F26', 'u1F27', 'u1F74', 'u1F75', 'u1FC6', 'u1FC3', 'u1FC2', 'u1FC4', 'u1F90', 'u1F91', 'u1F92', 'u1F93', 'u1F94', 'u1F95', 'u1F96', 'u1F97', 'u1FC7', 'u1F30', 'u1F31', 'u1F32', 'u1F33', 'u1F34', 'u1F35', 'u1F36', 'u1F37', 'u1F76', 'u1F77', 'u1FD6', 'u1FD0', 'u1FD1', 'u1FD2', 'u1FD3', 'u1FD7', 'u1F40', 'u1F41', 'u1F42', 'u1F43', 'u1F44', 'u1F45', 'u1F78', 'u1F79', 'u1FE4', 'u1FE5', 'u1F50', 'u1F51', 'u1F52', 'u1F53', 'u1F54', 'u1F55', 'u1F56', 'u1F57', 'u1F7A', 'u1F7B', 'u1FE6', 'u1FE0', 'u1FE1', 'u1FE2', 'u1FE3', 'u1FE7', 'u1F60', 'u1F61', 'u1F62', 'u1F63', 'u1F64', 'u1F65', 'u1F66', 'u1F67', 'u1F7C', 'u1F7D', 'u1FF6', 'u1FF3', 'u1FF2', 'u1FF4', 'u1FA0', 'u1FA1', 'u1FA2', 'u1FA3', 'u1FA4', 'u1FA5', 'u1FA6', 'u1FA7', 'u1FF7', 'u1FBE', 'u037A', 'u31B4', 'u31B5', 'u31B6', 'u31B7', 'u2132', 'u210A', 'u210E', 'u210F', 'u214E', 'u2095', 'u2096', 'u2097', 'u2098', 'u2099', 'u209A', 'u209B', 'u209C', 'u1D39', 'u1D3A', 'u1D3C', 'u1D3E', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'fraction', 'u2080', 'u2081', 'u2082', 'u2083', 'u2084', 'u2085', 'u2086', 'u2087', 'u2088', 'u2089', 'u2070', 'u00B9', 'u00B2', 'u00B3', 'u2074', 'u2075', 'u2076', 'u2077', 'u2078', 'u2079', 'space', 'u00A0', 'u2004', 'u2005', 'u2006', 'u2007', 'u2008', 'u2009', 'u200A', 'anoteleia', 'u037E', 'period', 'comma', 'colon', 'semicolon', 'exclam', 'exclamdown', 'question', 'questiondown', 'bullet', 'asterisk', 'numbersign', 'slash', 'backslash', 'u203D', 'u2E2E', 'hyphen', 'u2E3A', 'u2E3B', 'u2E40', 'underscore', 'u208D', 'u208E', 'parenleft', 'parenright', 'braceleft', 'braceright', 'bracketleft', 'bracketright', 'u207D', 'u207E', 'quotesinglbase', 'quotedblbase', 'quotedblleft', 'quotedblright', 'quoteleft', 'quoteright', 'quotereversed', 'u201F', 'guillemotleft', 'guillemotright', 'guilsinglleft', 'guilsinglright', 'u2034', 'u2036', 'u2037', 'quotedbl', 'quotesingle', 'u02E0', 'florin', 'u0374', 'u0375', 'u2129', 'u03F6', 'u0E3F', 'u02E5', 'u02E6', 'u02E7', 'u02E8', 'u02E9', 'u02F0', 'u02F7', 'u02DE', 'u02E4', 'u275B', 'u275C', 'u275D', 'u275E', 'u275F', 'u2760', 'at', 'ampersand', 'paragraph', 'section', 'copyright', 'registered', 'degree', 'minute', 'second', 'bar', 'brokenbar', 'u2113', 'u1F12F', 'u218A', 'u218B', 'u2373', 'u2374', 'u2375', 'u2376', 'u2377', 'u2378', 'u2379', 'u237A', 'u23E8', 'u2422', 'Euro', 'cent', 'colonmonetary', 'currency', 'dollar', 'dong', 'franc', 'lira', 'sterling', 'u20A0', 'u20A2', 'u20A6', 'u20A8', 'u20A9', 'u20AA', 'u20AD', 'u20AE', 'u20B4', 'u20B9', 'u20BD', 'yen', 'asciitilde', 'dotmath', 'plus', 'minus', 'multiply', 'divide', 'equal', 'greater', 'less', 'plusminus', 'logicalnot', 'asciicircum', 'product', 'summation', 'radical', 'partialdiff', 'uni03BC', 'percent', 'periodcentered', 'u2052', 'u207A', 'u207B', 'u207C', 'u208A', 'u208B', 'u208C', 'u2141', 'u2142', 'u2143', 'u2144', 'u2215', 'u2216', 'u221B', 'u221C', 'tonos', 'dieresistonos', 'u1FBF', 'u1FBD', 'u1FFE', 'u1FCD', 'u1FDD', 'u1FCE', 'u1FDE', 'u1FCF', 'u1FDF', 'u1FED', 'u1FEE', 'u1FC1', 'u1FEF', 'u1FFD', 'u1FC0', 'dieresis', 'grave', 'acute', 'u02EA', 'u02EB', 'breve', 'macron', 'u02B9', 'u02BA', 'u02BB', 'u02BC', 'u02BD', 'u02C0', 'u02C1', 'u02C8', 'u02CC', 'u02D0', 'u02D1', 'u2E55', 'u2E56', 'u31BB', 'uA4D0', 'uA4D1', 'uA4D2', 'uA4D3', 'uA4D4', 'uA4D5', 'uA4D6', 'uA4D7', 'uA4D8', 'uA4D9', 'uA4DA', 'uA4DB', 'uA4DC', 'uA4DD', 'uA4DE', 'uA4DF', 'uA4E0', 'uA4E1', 'uA4E2', 'uA4E3', 'uA4E4', 'uA4E5', 'uA4E6', 'uA4E7', 'uA4E8', 'uA4E9', 'uA4EA', 'uA4EB', 'uA4EC', 'uA4ED', 'uA4EE', 'uA4EF', 'uA4F0', 'uA4F1', 'uA4F2', 'uA4F3', 'uA4F4', 'uA4F5', 'uA4F6', 'uA4F7', 'uA4F8', 'uA4F9', 'uA4FA', 'uA4FB', 'uA4FC', 'uA4FD', 'uA4FE', 'uA4FF', 'uniA7AE', 'uA7AF', 'u11FB0', 'glyph33707', 'glyph33708', 'glyph33709', 'glyph33710', 'glyph33711', 'glyph33712', 'glyph33713', 'glyph33714', 'glyph33715', 'glyph33716', 'glyph33717', 'glyph33718', 'glyph33719', 'glyph33720', 'glyph33721', 'glyph33722', 'glyph33723', 'glyph33724', 'glyph33725', 'glyph33726', 'colon.calt', 'a.salt', 'nonmarkingreturn', 'cedilla', 'circumflex', 'dotaccent', 'figuredash', 'hungarumlaut', 'ogonek', 'ring', 'tilde', 'uni025C', 'uni02C9', 'uni02CD', 'uni02CE', 'uni02CF', 'uni02EC', 'uni02EF', 'uni02F3', 'uni2000', 'uni2002', 'uni2035', 'uni203E', 'uni2051', 'uni2201', 'uni220A', 'uni220D', 'uni2303', 'uni2423', 'uni2772', 'uni2773', 'uni27E8', 'uni27E9', 'uni27EA', 'uni27EB', 'uni303F', 'uniFF61', 'uniFF62', 'uniFF63', 'uniFF64', 'uniFF65', 'uniFF66', 'uniFF67', 'uniFF68', 'uniFF69', 'uniFF6A', 'uniFF6B', 'uniFF6C', 'uniFF6D', 'uniFF6E', 'uniFF6F', 'uniFF70', 'uniFF71', 'uniFF72', 'uniFF73', 'uniFF74', 'uniFF75', 'uniFF76', 'uniFF77', 'uniFF78', 'uniFF79', 'uniFF7A', 'uniFF7B', 'uniFF7C', 'uniFF7D', 'uniFF7E', 'uniFF7F', 'uniFF80', 'uniFF81', 'uniFF82', 'uniFF83', 'uniFF84', 'uniFF85', 'uniFF86', 'uniFF87', 'uniFF88', 'uniFF89', 'uniFF8A', 'uniFF8B', 'uniFF8C', 'uniFF8D', 'uniFF8E', 'uniFF8F', 'uniFF90', 'uniFF91', 'uniFF92', 'uniFF93', 'uniFF94', 'uniFF95', 'uniFF96', 'uniFF97', 'uniFF98', 'uniFF99', 'uniFF9A', 'uniFF9B', 'uniFF9C', 'uniFF9D', 'uniFF9E', 'uniFF9F', 'uniFFE8']


    [code: mono-outliers]

⚠️ WARN Check if OS/2 xAvgCharWidth is correct.
  • ⚠️ WARN

    OS/2 xAvgCharWidth is 500 but it should be 961 which corresponds to the average of the widths of all glyphs in the font.


    [code: xAvgCharWidth-wrong]
⚠️ WARN Check accent of Lcaron, dcaron, lcaron, tcaron
  • ⚠️ WARN

    Lcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    dcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    lcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    tcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

⚠️ WARN Does the font contain chws and vchw features?
⚠️ WARN Check if each glyph has the recommended amount of contours.
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

The following glyphs do not have the recommended number of contours:

- Glyph name: copyright	Contours detected: 5	Expected: 3
  • Glyph name: plusminus Contours detected: 3 Expected: 1 or 2

  • Glyph name: u0180 Contours detected: 4 Expected: 2

  • Glyph name: u0181 Contours detected: 5 Expected: 3

  • Glyph name: u0182 Contours detected: 3 Expected: 2

  • Glyph name: u0183 Contours detected: 3 Expected: 2

  • Glyph name: u0184 Contours detected: 3 Expected: 2

  • Glyph name: u0185 Contours detected: 4 Expected: 2

  • Glyph name: u0186 Contours detected: 2 Expected: 1

  • Glyph name: u0187 Contours detected: 3 Expected: 1

  • 470 more.

Use -F or --full-lists to disable shortening of long lists.

[code: contour-count]
⚠️ WARN Does GPOS table have kerning information? This check skips monospaced fonts as defined by post.isFixedPitch value
  • ⚠️ WARN

    GPOS table lacks kerning information.


    [code: lacks-kern-info]
⚠️ WARN Are there caret positions declared for every ligature?
  • ⚠️ WARN

    This font lacks caret position values for ligature glyphs on its GDEF table.


    [code: lacks-caret-pos]
⚠️ WARN Check math signs have the same width.
  • ⚠️ WARN

    The most common width is 1000 among a set of 59 math glyphs.
    The following math glyphs have a different width, though:

Width = 500: plusminus, multiply, less, logicalnot, plus, greater, equal, asciitilde, divide

Width = 350: minus

[code: width-outliers]
⚠️ WARN Check there are no overlapping path segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* AEacute (U+01FC): L<<194.0,749.0>--<193.0,749.0>> has the same coordinates as a previous segment.

* Gcaron (U+01E6): L<<398.0,578.0>--<397.0,578.0>> has the same coordinates as a previous segment.

* Oslashacute (U+01FE): L<<194.0,749.0>--<193.0,749.0>> has the same coordinates as a previous segment.

* u1E9E (U+1E9E): L<<276.0,365.0>--<275.0,365.0>> has the same coordinates as a previous segment.

* u1E9E (U+1E9E): B<<383.0,372.0>-<382.0,372.0>-<382.0,372.0>> has the same coordinates as a previous segment.

* Wacute (U+1E82): B<<305.0,47.0>-<305.0,47.0>-<305.0,46.0>> has the same coordinates as a previous segment.

* Wdieresis (U+1E84): B<<305.0,47.0>-<305.0,47.0>-<305.0,46.0>> has the same coordinates as a previous segment.

* Wgrave (U+1E80): B<<305.0,47.0>-<305.0,47.0>-<305.0,46.0>> has the same coordinates as a previous segment.

* Ygrave (U+1EF2): L<<321.0,748.0>--<320.0,748.0>> has the same coordinates as a previous segment.

* u0181 (U+0181): L<<-30.0,578.0>--<-30.0,577.0>> has the same coordinates as a previous segment.

* 28052 more.

Use -F or --full-lists to disable shortening of long lists.

[code: overlapping-path-segments]
⚠️ WARN Checking that the typoAscender exceeds the yMax of the /Agrave.
  • ⚠️ WARN

    OS/2.sTypoAscender value should be greater than 882, but got 880 instead


    [code: typoAscender]
⚠️ WARN Check font contains no unreachable glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- ccedilla_Iotatonos.liga

- ccedilla_a.liga

- nonmarkingreturn

- one_slash_one_one.afrc

- three_slash_one_one.afrc

- two_slash_one_one.afrc

- uni02560061.liga

- uni0256038A.liga

- uni025B0061.liga

- uni025B038A.liga

- 4 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unreachable-glyphs]
⚠️ WARN Glyph names are all valid?
  • ⚠️ WARN

    The following glyph names may be too long for some legacy systems which may expect a maximum 31-characters length limit:
    uni30AA30F330B030B930C830ED30FC30E0.dlig, uni30AA30F330B030B930C830ED30FC30E0.dlig.1, uni30AD30ED30EA30C330C830EB.dlig, uni30AD30ED30EA30C330C830EB.dlig.1, uni30D830AF30C830D130B930AB30EB.dlig and uni30D830AF30C830D130B930AB30EB.dlig.1


    [code: legacy-long-names]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
  • ⚠️ WARN

    Family metadata at ofl/lxgwwenkaimonotc does not have an article.


    [code: lacks-article]
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • ⚠️ WARN

    It seems that LXGW is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry.


    [code: profile-not-found]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
  • ⚠️ WARN

    The following codepoints supported by the font are not covered by
    any subsets defined in the font's metadata file, and will never
    be served. You can solve this by either manually adding additional
    subset declarations to METADATA.pb, or by editing the glyphset
    definitions.

  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: cherokee, coptic, math, tifinagh
  • U+0305 COMBINING OVERLINE: try adding one of: coptic, math, gothic, elbasan, glagolitic
  • U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh
  • U+0307 COMBINING DOT ABOVE: try adding one of: coptic, math, syriac, tai-le, duployan, todhri, tifinagh, canadian-aboriginal, old-permic, hebrew, malayalam
  • U+030A COMBINING RING ABOVE: try adding one of: duployan, syriac
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le 13790 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: chinese-hongkong, cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, lisu, menu, vietnamese

[code: unreachable-subsetting]
⚠️ WARN On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.
  • ⚠️ WARN

    The DESCRIPTION.en_us.html file in this family has not changed in comparison to the latest font release on the google/fonts github repo.
    Please consider mentioning note-worthy improvements made to the family recently.


    [code: description-not-updated]
⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.
  • ⚠️ WARN

    The dot of soft dotted characters used in orthographies must disappear in the following strings: i̊ i̋ i̍ j̀ j́ j̃ j̄ j̈ j̑ į̀ į́ į̂ į̃ į̄ į̌ ɨ̀ ɨ́ ɨ̂ ɨ̃ ɨ̄ ɨ̈ ɨ̋ ɨ̌ ɨ̏ ɨ̧̀ ɨ̧́ ɨ̧̂ ɨ̧̌ ɨ̱̀ ɨ̱́ ɨ̱̈ і́ ḭ̀ ḭ́ ḭ̄ ị̀ ị́ ị̂ ị̃ ị̄

The dot of soft dotted characters should disappear in other cases, for example: i̅ i̇ i̽ i̖̅ i̖̇ i̖̊ i̖̋ i̖̍ i̖̽ i̗̅ i̗̇ i̗̊ i̗̋ i̗̍ i̗̽ i̘̅ i̘̇ i̘̊ i̘̋ i̘̍

Your font fully covers the following languages that require the soft-dotted feature: Western Krahn (Latn, 97,800 speakers), Dutch (Latn, 31,709,104 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Kom (Latn, 360,685 speakers), Makaa (Latn, 221,000 speakers), Ebira (Latn, 2,200,000 speakers), Han (Latn, 6 speakers), Vute (Latn, 21,000 speakers), Teke-Ebo (Latn, 260,000 speakers), Ijo, Southeast (Latn, 2,471,000 speakers), Southern Tutchone (Latn, 65 speakers), Belarusian (Cyrl, 10,064,517 speakers), Igbo (Latn, 27,823,640 speakers), Gulay (Latn, 250,478 speakers), Ma’di (Latn, 584,000 speakers), Nzakara (Latn, 50,000 speakers), Mango (Latn, 77,000 speakers), Abua (Latn, 25,000 speakers), Ekpeye (Latn, 226,000 speakers), Koonzime (Latn, 40,000 speakers), Mundani (Latn, 34,000 speakers), Northern Tutchone (Latn, 85 speakers), Lugbara (Latn, 2,200,000 speakers), South Central Banda (Latn, 244,000 speakers), Nateni (Latn, 100,000 speakers), Ikwere (Latn, 717,000 speakers), Aghem (Latn, 38,843 speakers), Bafut (Latn, 158,146 speakers), Navajo (Latn, 166,319 speakers), Longto (Latn, 5,000 speakers), Zapotec (Latn, 490,000 speakers), Ngbaka (Latn, 1,020,000 speakers), Kaska (Latn, 125 speakers), Yala (Latn, 200,000 speakers), Sar (Latn, 500,000 speakers), Lithuanian (Latn, 2,357,094 speakers), Dii (Latn, 71,000 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Cicipu (Latn, 44,000 speakers), Ejagham (Latn, 120,000 speakers), Mfumte (Latn, 79,000 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Bete-Bendi (Latn, 100,000 speakers), Basaa (Latn, 332,940 speakers), Heiltsuk (Latn, 300 speakers), Avokaya (Latn, 100,000 speakers), Fur (Latn, 1,230,163 speakers), Southern Kisi (Latn, 360,000 speakers), Keliko (Latn, 63,000 speakers), Dan (Latn, 1,099,244 speakers).

[code: soft-dotted]
⚠️ WARN Check the direction of the outermost contour in each glyph
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* .notdef has a counter-clockwise outer contour

* A (U+0041) has a counter-clockwise outer contour

* AE (U+00C6) has a counter-clockwise outer contour

* AEacute (U+01FC) has a counter-clockwise outer contour

* AEacute (U+01FC) has a counter-clockwise outer contour

* AEacute (U+01FC) has a counter-clockwise outer contour

* AEacute (U+01FC) has a path with no bounds (probably a single point)

* A_M.dlig has a counter-clockwise outer contour

* A_M.dlig has a counter-clockwise outer contour

* Aacute (U+00C1) has a counter-clockwise outer contour

* 224314 more.

Use -F or --full-lists to disable shortening of long lists.

[code: ccw-outer-contour]
⚠️ WARN Do outlines contain any jaggy segments?
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* G (U+0047): B<<271.0,301.0>-<333.0,311.0>-<395.0,317.0>>/B<<395.0,317.0>-<394.0,317.0>-<394.0,316.0>> = 5.527540151656126

* Gbreve (U+011E): B<<271.0,301.0>-<333.0,311.0>-<395.0,317.0>>/B<<395.0,317.0>-<394.0,317.0>-<394.0,316.0>> = 5.527540151656126

* Gcircumflex (U+011C): B<<271.0,301.0>-<333.0,311.0>-<395.0,317.0>>/B<<395.0,317.0>-<394.0,317.0>-<394.0,316.0>> = 5.527540151656126

* Gdotaccent (U+0120): B<<271.0,301.0>-<333.0,311.0>-<395.0,317.0>>/B<<395.0,317.0>-<394.0,317.0>-<394.0,316.0>> = 5.527540151656126

* M (U+004D): B<<103.0,171.0>-<115.0,455.0>-<121.0,563.0>>/B<<121.0,563.0>-<126.0,531.0>-<170.0,321.0>> = 12.060489270384446

* M (U+004D): B<<322.0,338.0>-<364.0,511.0>-<383.0,580.0>>/L<<383.0,580.0>--<381.0,570.0>> = 4.085616779974977

* W (U+0057): B<<186.5,497.0>-<170.0,361.0>-<147.0,110.0>>/B<<147.0,110.0>-<125.0,389.0>-<111.5,508.5>> = 9.744207311837073

* W (U+0057): B<<392.5,499.5>-<375.0,359.0>-<353.0,107.0>>/B<<353.0,107.0>-<328.0,355.0>-<291.0,623.0>> = 10.745700830765564

* Wcircumflex (U+0174): B<<187.0,497.0>-<170.0,361.0>-<147.0,110.0>>/B<<147.0,110.0>-<125.0,389.0>-<112.0,509.0>> = 9.744207311837073

* Wcircumflex (U+0174): B<<393.0,500.0>-<375.0,359.0>-<353.0,107.0>>/B<<353.0,107.0>-<328.0,355.0>-<291.0,623.0>> = 10.745700830765564

* 4632 more.

Use -F or --full-lists to disable shortening of long lists.

[code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines?
  • ⚠️ WARN

    The following glyphs have semi-vertical/semi-horizontal lines:

* Eng (U+014A): L<<442.0,-30.0>--<440.0,596.0>>

* Eta (U+0397): L<<435.0,106.0>--<436.0,677.0>>

* Etatonos (U+0389): L<<435.0,106.0>--<436.0,677.0>>

* IJ (U+0132): L<<115.0,635.0>--<114.0,107.0>>

* Iota (U+0399): L<<218.0,634.0>--<217.0,107.0>>

* Iotadieresis (U+03AA): L<<218.0,634.0>--<217.0,107.0>>

* Iotatonos (U+038A): L<<218.0,634.0>--<217.0,107.0>>

* K (U+004B): L<<123.0,-1.0>--<122.0,333.0>>

* Kappa (U+039A): L<<122.0,423.0>--<124.0,677.0>>

* Nu (U+039D): L<<436.0,88.0>--<437.0,677.0>>

* 37128 more.

Use -F or --full-lists to disable shortening of long lists.

[code: found-semi-vertical]
ℹ️ INFO List all superfamily filepaths
  • ℹ️ INFO

    ofl/lxgwwenkaimonotc


    [code: family-path]
ℹ️ INFO EPAR table present in font?
ℹ️ INFO Show hinting filesize impact.
  • ℹ️ INFO

    Hinting filesize impact:

ofl/lxgwwenkaimonotc/LXGWWenKaiMonoTC-Light.ttf
Dehinted Size 13.1Mb
Hinted Size 13.1Mb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables?
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- BASE

- GSUB

- gasp

- vhea

- vmtx

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL?
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
  • ℹ️ INFO

    This font doesn't have an ARTICLE.en_us.html file.


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
ℹ️ INFO Ensure fonts have ScriptLangTags declared on the 'meta' table.
  • ℹ️ INFO

    Latn,Hant


    [code: dlng-tag]

  • ℹ️ INFO

    Latn,Hant,ja,el,Cyrl


    [code: slng-tag]

ℹ️ INFO Font has old ttfautohint applied?
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.331']


    [code: version-not-detected]
[36] LXGWWenKaiMonoTC-Bold.ttf
🔥 FAIL Ensure files are not too large.
  • 🔥 FAIL

    Font file is 12.3Mb, larger than limit 9.0Mb


    [code: massive-font]
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field.

But: font copyright string has 'https://github.com/lxgw/LxgwWenkaiTC', font copyright string has 'https://github.com/lxgw/LxgwWenkaiTC', font copyright string has 'https://github.com/lxgw/LxgwWenkaiTC', OFL text has 'https://github.com/lxgw/LxgwWenkaiTC', HTML description has 'github.com/ichitenfont/inheritedglyphs' and HTML description has 'github.com/lxgw/LxgwWenkaiTC'

[code: mismatch]
🔥 FAIL METADATA.pb font.name and font.full_name fields match the values declared on the name table?
  • 🔥 FAIL

    METADATA.pb Family name "LXGW WenKai Mono TC" does not match name table entry "霞鶩文楷等寬 TC"!


    [code: familyname-mismatch]
🔥 FAIL Shapes languages in all GF glyphsets.
  • 🔥 FAIL

    GF_Greek_Expert glyphset:

FAIL messages Languages
Some base glyphs were missing: T͟H, t͟h udu_Latn (Uduk)
Some mark glyphs were missing: ◌͟ udu_Latn (Uduk) and apd_Latn (Sudanese Arabic)
Some base glyphs were missing: Ꞌ, ꞌ did_Latn (Didinga), avu_Latn (Avokaya), bex_Latn (Jur Modo), muh_Latn (Mündü), ndz_Latn (Ndogo), bav_Latn (Vengo), fvr_Latn (Fur), bcy_Latn (Bacama), cdr_Latn (Kamuku), bdh_Latn (Baka, DRC/South Sudan) and 11 more.
Some base glyphs were missing: Ɑ, Ɑ̀, Ɑ̂, Ɑ̌ byv_Latn (Medumba)
Some base glyphs were missing: ꞉, ꞊ buu_Latn (Budu)
Some base glyphs were missing: ˗, ˮ ati_Latn (Attié) and yre_Latn (Yaouré)
Some base glyphs were missing: ᵃ, ᵉ, ᵋ, ᵒ, ᵓ, ᵘ, ᶤ, ᶶ teo_Latn (Teso)
Some base glyphs were missing: ˗ god_Latn (Godié)
Some base glyphs were missing: Ꟈ, ꟈ mor_Latn (Moro)
Some base glyphs were missing: Ⱳ, ⱳ lob_Latn (Lobi) and pug_Latn (Phuie)
Some base glyphs were missing: Ɑ nza_Latn (Tigon Mbembe)
Some base glyphs were missing: Ɑ, Ɑ̀, Ɑ́, Ɑ̄, Ɑ̌ fmp_Latn (Fe’fe’)
Some base glyphs were missing: ᵽ, Ᵽ bqj_Latn (Bandial)
Some base glyphs were missing: A᷆, A᷇, E᷆, E᷇, I᷆, I᷇, O᷆, O᷇, U᷆, U᷇, a᷆, a᷇, e᷆, e᷇, i᷆, i᷇, o᷆, o᷇, u᷆, u᷇, Ɔ᷆, Ɔ᷇, Ɛ᷆, Ɛ᷇, ɔ᷆, ɔ᷇, ɛ᷆, ɛ᷇ bas_Latn (Basaa)
Some mark glyphs were missing: ◌᷆, ◌᷇ bas_Latn (Basaa)
Some base glyphs were missing: ꞋB, ꞋD, ꞋJ, ꞋNG, ꞌb, ꞌd, ꞌj, ꞌng bot_Latn (Bongo)
Some base glyphs were missing: ꞋB, ꞋD, ꞋW, ꞋY, ꞌb, ꞌd, ꞌw, ꞌy kbo_Latn (Keliko)
Some base glyphs were missing: Ꞷ, Ꞷ̃, ꞷ, ꞷ̃ kzc_Latn (Bondoukou Kulango)
Some mark glyphs were missing: ◌᷄, ◌᷅ kss_Latn (Southern Kisi)
Some base glyphs were missing: Ɤ, Ɤ̀, Ɤ́, Ɤ̂, Ɤ̄, Ɤ̋, Ɤ̏ dnj_Latn (Dan)
Some base glyphs were missing: Ɤ, Ɤ̀, Ɤ́, Ɤ̂ gov_Latn (Goo)
Some base glyphs were missing: A᷅, A᷆, E᷅, E᷆, I᷅, I᷆, O᷅, O᷆, U᷅, U᷆, a᷅, a᷆, e᷅, e᷆, i᷅, i᷆, o᷅, o᷆, u᷅, u᷆ btt_Latn (Bete-Bendi)
Some mark glyphs were missing: ◌᷅, ◌᷆ btt_Latn (Bete-Bendi)
[code: failed-language-shaping]
  • ⚠️ WARN

    GF_Greek_Expert glyphset:

WARN messages Languages
No variant glyphs were found for Eng bm_Latn (Bambara), dyu_Latn (Dyula), ig_Latn (Igbo), lg_Latn (Ganda), bkm_Latn (Kom), tnr_Latn (Ménik), gde_Latn (Gude), bsc_Latn (Bassari), ee_Latn (Ewe), ken_Latn (Kenyang) and 250 more.
Some auxiliary glyphs were missing: A᷆, E᷆, O᷅, O᷆, U᷆, a᷆, e᷆, o᷅, o᷆, u᷆, Ũ᷆, ũ᷆, Ɔ᷆, Ɩ̃᷆, Ɩ᷆, ɔ᷆, ɩ̃᷆, ɩ᷆ tcd_Latn (Tafi)
No exemplar glyphs were defined for language Eastern Gurung, Latin ggn_Latn (Eastern Gurung, Latin)
No exemplar glyphs were defined for language Mina hna_Latn (Mina)
Some auxiliary glyphs were missing: ꞌ cae_Latn (Lehar)
No variant glyphs were found for u01A9 gaa_Latn (Ga)
No variant glyphs were found for u01B7 gaa_Latn (Ga)
No exemplar glyphs were defined for language Seki syi_Latn (Seki)
No exemplar glyphs were defined for language Atsam cch_Latn (Atsam)
No variant glyphs were found for u0181 lom_Latn (Loma, Liberia) and dnj_Latn (Dan)
Some auxiliary glyphs were missing: A᷄, A᷅, E᷄, E᷅, I᷄, I᷅, O᷄, O᷅, U᷄, U᷅, a᷄, a᷅, e᷄, e᷅, i᷄, i᷅, o᷄, o᷅, u᷄, u᷅, Ɔ᷄, Ɔ᷅, Ɛ᷄, Ɛ᷅, ɔ᷄, ɔ᷅, ɛ᷄, ɛ᷅ kss_Latn (Southern Kisi)
No exemplar glyphs were defined for language Koro kfo_Latn (Koro)
No variant glyphs were found for u028B tod_Latn (Toma)
No variant glyphs were found for u01B2 tod_Latn (Toma)
Some auxiliary glyphs were missing: ˗, ˮ, ꞊ dnj_Latn (Dan)
No exemplar glyphs were defined for language Mbunga mgy_Latn (Mbunga)
No exemplar glyphs were defined for language Amo amo_Latn (Amo)
Some auxiliary glyphs were missing: Ɐ, Ɐ̀, Ɐ́, Ɐ̂ kib_Latn (Koalib)
[code: warning-language-shaping]
🔥 FAIL Check family name for GF Guide compliance.
  • 🔥 FAIL

    "霞鶩文楷等寬 TC" contains the following characters which are not allowed: "寬文楷等霞鶩".


    [code: forbidden-characters]

  • 🔥 FAIL

    "霞鶩文楷等寬 TC" doesn't start with an uppercase letter.


    [code: starts-with-not-uppercase]

⚠️ WARN Check mark characters are in GDEF mark glyph class.
  • ⚠️ WARN

    The following mark characters could be in the GDEF mark glyph class:
    acutecomb (U+0301), dotbelowcomb (U+0323), gravecomb (U+0300), hookabovecomb (U+0309), tildecomb (U+0303), u0302 (U+0302), u0304 (U+0304), u0305 (U+0305), u0306 (U+0306), u0307 (U+0307) and 49 more.

Use -F or --full-lists to disable shortening of long lists.

[code: mark-chars]
⚠️ WARN Checking correctness of monospaced metadata.
  • ⚠️ WARN

    The OpenType spec recommends at https://learn.microsoft.com/en-us/typography/opentype/spec/recom#hhea-table that hhea.numberOfHMetrics be set to 3 but this font has 22430 instead.
    Please read hhea.numberOfHMetrics not correct for monospace fonttools/fonttools#3014 to decide whether this makes sense for your font.


    [code: bad-numberOfHMetrics]

  • ⚠️ WARN

    Font is monospaced but 1765 glyphs (7.85%) have a different width. You should check the widths of: ['A', 'Aacute', 'Abreve', 'Acircumflex', 'Adieresis', 'Agrave', 'Amacron', 'Aogonek', 'Aring', 'Aringacute', 'Atilde', 'AE', 'AEacute', 'u01E2', 'B', 'C', 'Cacute', 'Ccaron', 'Ccedilla', 'Ccircumflex', 'Cdotaccent', 'D', 'Dcaron', 'Dcroat', 'Eth', 'E', 'Eacute', 'Ebreve', 'Ecaron', 'Ecircumflex', 'Edieresis', 'Edotaccent', 'Egrave', 'Emacron', 'Eogonek', 'u018F', 'F', 'G', 'Gbreve', 'Gcaron', 'Gcircumflex', 'Gdotaccent', 'u021C', 'H', 'Hbar', 'Hcircumflex', 'I', 'IJ', 'Iacute', 'Ibreve', 'Icircumflex', 'Idieresis', 'Idotaccent', 'Igrave', 'Imacron', 'Iogonek', 'Itilde', 'J', 'Jcircumflex', 'K', 'L', 'Lacute', 'Lcaron', 'Ldot', 'Lslash', 'M', 'N', 'Nacute', 'Ncaron', 'Ntilde', 'Eng', 'O', 'Oacute', 'Obreve', 'Ocircumflex', 'Odieresis', 'Ograve', 'Ohorn', 'Ohungarumlaut', 'Omacron', 'Oslash', 'Oslashacute', 'Otilde', 'OE', 'P', 'Thorn', 'Q', 'R', 'Racute', 'Rcaron', 'S', 'Sacute', 'Scaron', 'Scedilla', 'Scircumflex', 'u1E9E', 'T', 'Tbar', 'Tcaron', 'U', 'Uacute', 'Ubreve', 'Ucircumflex', 'Udieresis', 'Ugrave', 'Uhorn', 'Uhungarumlaut', 'Umacron', 'Uogonek', 'Uring', 'Utilde', 'V', 'u0194', 'W', 'Wacute', 'Wcircumflex', 'Wdieresis', 'Wgrave', 'X', 'Y', 'Yacute', 'Ycircumflex', 'Ydieresis', 'Ygrave', 'Z', 'Zacute', 'Zcaron', 'Zdotaccent', 'u0122', 'u0136', 'u013B', 'u0145', 'u0156', 'u0162', 'u0181', 'u0182', 'u0184', 'u0186', 'u0187', 'u0189', 'u018A', 'u018B', 'u018E', 'u0190', 'u0191', 'u0193', 'u0196', 'u0197', 'u0198', 'u019C', 'u019D', 'u019F', 'u01A2', 'u01A4', 'u01A6', 'u01A7', 'u01A9', 'u01AC', 'u01AE', 'u01B1', 'u01B2', 'u01B3', 'u01B5', 'u01B7', 'u01B8', 'u01BC', 'u01C4', 'u01C5', 'u01C7', 'u01C8', 'u01CA', 'u01CB', 'u01CD', 'u01CF', 'u01D1', 'u01D3', 'u01D5', 'u01D7', 'u01D9', 'u01DB', 'u01DE', 'u01E0', 'u01E4', 'u01E8', 'u01EA', 'u01EC', 'u01EE', 'u01F1', 'u01F2', 'u01F4', 'u01F6', 'u01F7', 'u01F8', 'u0200', 'u0202', 'u0204', 'u0206', 'u0208', 'u020A', 'u020C', 'u020E', 'u0210', 'u0212', 'u0214', 'u0216', 'u0218', 'u021A', 'u021E', 'u0220', 'u0222', 'u0224', 'u0226', 'u0228', 'u022A', 'u022C', 'u022E', 'u0230', 'u0232', 'u023A', 'u023B', 'u023D', 'u023E', 'u0241', 'u0243', 'u0244', 'u0245', 'u0246', 'u0248', 'u024A', 'u024C', 'u024E', 'u1E00', 'u1E02', 'u1E04', 'u1E06', 'u1E08', 'u1E0A', 'u1E0C', 'u1E0E', 'u1E10', 'u1E12', 'u1E14', 'u1E16', 'u1E18', 'u1E1A', 'u1E1C', 'u1E1E', 'u1E20', 'u1E22', 'u1E24', 'u1E26', 'u1E28', 'u1E2A', 'u1E2C', 'u1E2E', 'u1E30', 'u1E32', 'u1E34', 'u1E36', 'u1E38', 'u1E3A', 'u1E3C', 'u1E3E', 'u1E40', 'u1E42', 'u1E44', 'u1E46', 'u1E48', 'u1E4A', 'u1E4C', 'u1E4E', 'u1E50', 'u1E52', 'u1E54', 'u1E56', 'u1E58', 'u1E5A', 'u1E5C', 'u1E5E', 'u1E60', 'u1E62', 'u1E64', 'u1E66', 'u1E68', 'u1E6A', 'u1E6C', 'u1E6E', 'u1E70', 'u1E72', 'u1E74', 'u1E76', 'u1E78', 'u1E7A', 'u1E7C', 'u1E7E', 'u1E86', 'u1E88', 'u1E8A', 'u1E8C', 'u1E8E', 'u1E90', 'u1E92', 'u1E94', 'u1EA0', 'u1EA2', 'u1EA4', 'u1EA6', 'u1EA8', 'u1EAA', 'u1EAC', 'u1EAE', 'u1EB0', 'u1EB2', 'u1EB4', 'u1EB6', 'u1EB8', 'u1EBA', 'u1EBC', 'u1EBE', 'u1EC0', 'u1EC2', 'u1EC4', 'u1EC6', 'u1EC8', 'u1ECA', 'u1ECC', 'u1ECE', 'u1ED0', 'u1ED2', 'u1ED4', 'u1ED6', 'u1ED8', 'u1EDA', 'u1EDC', 'u1EDE', 'u1EE0', 'u1EE2', 'u1EE4', 'u1EE6', 'u1EE8', 'u1EEA', 'u1EEC', 'u1EEE', 'u1EF0', 'u1EF4', 'u1EF6', 'u1EF8', 'u1EFA', 'uni2C64', 'uniA78D', 'uniA7AA', 'uniA7AD', 'uniA7B2', 'uniA7B3', 'uniA7B4', 'a', 'aacute', 'abreve', 'acircumflex', 'adieresis', 'agrave', 'amacron', 'aogonek', 'aring', 'aringacute', 'atilde', 'ae', 'aeacute', 'u01E3', 'b', 'c', 'cacute', 'ccaron', 'ccedilla', 'ccircumflex', 'cdotaccent', 'd', 'dcaron', 'dcroat', 'eth', 'e', 'eacute', 'ebreve', 'ecaron', 'ecircumflex', 'edieresis', 'edotaccent', 'egrave', 'emacron', 'eogonek', 'u0259', 'u025A', 'f', 'g', 'gbreve', 'gcaron', 'gcircumflex', 'gdotaccent', 'u021D', 'h', 'hbar', 'hcircumflex', 'i', 'dotlessi', 'iacute', 'ibreve', 'icircumflex', 'idieresis', 'igrave', 'imacron', 'iogonek', 'itilde', 'ij', 'j', 'u0237', 'jcircumflex', 'k', 'kgreenlandic', 'l', 'lacute', 'lcaron', 'ldot', 'lslash', 'm', 'n', 'nacute', 'napostrophe', 'ncaron', 'ntilde', 'eng', 'o', 'oacute', 'obreve', 'ocircumflex', 'odieresis', 'ograve', 'ohorn', 'ohungarumlaut', 'omacron', 'oslash', 'oslashacute', 'otilde', 'oe', 'p', 'thorn', 'q', 'r', 'racute', 'rcaron', 's', 'sacute', 'scaron', 'scedilla', 'scircumflex', 'germandbls', 'longs', 't', 'tbar', 'tcaron', 'u', 'u0123', 'u0137', 'u013C', 'u0146', 'u0157', 'u0163', 'u0180', 'u0183', 'u0185', 'u0188', 'u018C', 'u018D', 'u0195', 'u0199', 'u019A', 'u019B', 'u019E', 'u01A3', 'u01A5', 'u01A8', 'u01AA', 'u01AB', 'u01AD', 'u01B4', 'u01B6', 'u01B9', 'u01BA', 'u01BD', 'u01BE', 'u01BF', 'u01C6', 'u01C9', 'u01CC', 'u01CE', 'u01D0', 'u01D2', 'u01D4', 'u01D6', 'u01D8', 'u01DA', 'u01DC', 'u01DD', 'u01DF', 'u01E1', 'u01E5', 'u01E9', 'u01EB', 'u01ED', 'u01EF', 'u01F0', 'u01F3', 'u01F5', 'u01F9', 'u0201', 'u0203', 'u0205', 'u0207', 'u0209', 'u020B', 'u020D', 'u020F', 'u0211', 'u0213', 'u0215', 'u0217', 'u0219', 'u021B', 'u021F', 'u0221', 'u0223', 'u0225', 'u0227', 'u0229', 'u022B', 'u022D', 'u022F', 'u0231', 'u0233', 'u0234', 'u0235', 'u0236', 'u0238', 'u0239', 'u023C', 'u023F', 'u0240', 'u0242', 'u0247', 'u0249', 'u024B', 'u024D', 'u024F', 'u0250', 'u0251', 'u0252', 'u0253', 'u0254', 'u0255', 'u0256', 'u0257', 'u0258', 'u025B', 'u025D', 'u025E', 'u025F', 'u0260', 'u0261', 'u0262', 'u0263', 'u0264', 'u0265', 'u0266', 'u0267', 'u0268', 'u0269', 'u026A', 'u026B', 'u026C', 'u026D', 'u026E', 'u026F', 'u0270', 'u0271', 'u0272', 'u0273', 'u0274', 'u0275', 'u0276', 'u0277', 'u0278', 'u0279', 'u027A', 'u027B', 'u027C', 'u027D', 'u027E', 'u027F', 'u0280', 'u0281', 'u0282', 'u0283', 'u0284', 'u0285', 'u0286', 'u0287', 'u0288', 'u0289', 'u028A', 'u028B', 'u028C', 'u028D', 'u028E', 'u028F', 'u0290', 'u0291', 'u0292', 'u0293', 'u0294', 'u0295', 'u0296', 'u0297', 'u0298', 'u0299', 'u029A', 'u029B', 'u029C', 'u029D', 'u029E', 'u029F', 'u02A0', 'u02A1', 'u02A2', 'u02A3', 'u02A4', 'u02A5', 'u02A6', 'u02A7', 'u02A8', 'u02A9', 'u02AA', 'u02AB', 'u02AC', 'u02AD', 'u02AE', 'u02AF', 'u1D00', 'u1D04', 'u1D05', 'u1D06', 'u1D07', 'u1D08', 'u1D0A', 'u1D0B', 'u1D0C', 'u1D0D', 'u1D0E', 'u1D0F', 'u1D10', 'u1D14', 'u1D15', 'u1D18', 'u1D19', 'u1D1A', 'u1D1B', 'u1D1C', 'u1D20', 'u1D21', 'u1D22', 'u1D23', 'u1D25', 'u1E01', 'u1E03', 'u1E05', 'u1E07', 'u1E09', 'u1E0B', 'u1E0D', 'u1E0F', 'u1E11', 'u1E13', 'u1E15', 'u1E17', 'u1E19', 'u1E1B', 'u1E1D', 'u1E1F', 'u1E21', 'u1E23', 'u1E25', 'u1E27', 'u1E29', 'u1E2B', 'u1E2D', 'u1E2F', 'u1E31', 'u1E33', 'u1E35', 'u1E37', 'u1E39', 'u1E3B', 'u1E3D', 'u1E3F', 'u1E41', 'u1E43', 'u1E45', 'u1E47', 'u1E49', 'u1E4B', 'u1E4D', 'u1E4F', 'u1E51', 'u1E53', 'u1E55', 'u1E57', 'u1E59', 'u1E5B', 'u1E5D', 'u1E5F', 'u1E61', 'u1E63', 'u1E65', 'u1E67', 'u1E69', 'u1E6B', 'u1E6D', 'u1E6F', 'u1E71', 'u1E73', 'u1E75', 'u1E77', 'u1E79', 'u1E7B', 'u1E7D', 'u1E7F', 'u1E87', 'u1E89', 'u1E8B', 'u1E8D', 'u1E8F', 'u1E91', 'u1E93', 'u1E95', 'u1E96', 'u1E97', 'u1E98', 'u1E99', 'u1E9A', 'u1E9B', 'u1E9C', 'u1E9D', 'u1E9F', 'u1EA1', 'u1EA3', 'u1EA5', 'u1EA7', 'u1EA9', 'u1EAB', 'u1EAD', 'u1EAF', 'u1EB1', 'u1EB3', 'u1EB5', 'u1EB7', 'u1EB9', 'u1EBB', 'u1EBD', 'u1EBF', 'u1EC1', 'u1EC3', 'u1EC5', 'u1EC7', 'u1EC9', 'u1ECB', 'u1ECD', 'u1ECF', 'u1ED1', 'u1ED3', 'u1ED5', 'u1ED7', 'u1ED9', 'u1EDB', 'u1EDD', 'u1EDF', 'u1EE1', 'u1EE3', 'u1EE5', 'u1EE7', 'u1EE9', 'u1EEB', 'u1EED', 'u1EEF', 'u1EF1', 'u1EF5', 'u1EF7', 'u1EF9', 'u1EFB', 'uA730', 'uA731', 'uA7B5', 'uAB53', 'uacute', 'ubreve', 'ucircumflex', 'udieresis', 'ugrave', 'uhorn', 'uhungarumlaut', 'umacron', 'uni2C65', 'uni2C66', 'uogonek', 'uring', 'utilde', 'v', 'w', 'wacute', 'wcircumflex', 'wdieresis', 'wgrave', 'x', 'y', 'yacute', 'ycircumflex', 'ydieresis', 'ygrave', 'z', 'zacute', 'zcaron', 'zdotaccent', 'uFB00', 'uFB01', 'uFB02', 'uFB03', 'uFB04', 'u2090', 'u2091', 'u2092', 'u2093', 'u2094', 'ordfeminine', 'ordmasculine', 'u01BB', 'u01C0', 'u01C1', 'u01C2', 'u01C3', 'u02B0', 'u02B2', 'u02B3', 'u02B7', 'u02B8', 'u02E1', 'u02E2', 'u02E3', 'u2071', 'u207F', 'u0410', 'u0411', 'u0412', 'u0413', 'u0403', 'u0490', 'u0492', 'u0414', 'u0415', 'u0400', 'u0401', 'u0416', 'u0417', 'u0418', 'u0419', 'u040D', 'u041A', 'u040C', 'u041B', 'u041C', 'u041D', 'u041E', 'u041F', 'u0420', 'u0421', 'u0422', 'u0423', 'u040E', 'u0424', 'u0425', 'u0427', 'u0426', 'u0428', 'u0429', 'u040F', 'u042C', 'u042B', 'u042A', 'u0409', 'u040A', 'u0405', 'u0404', 'u042D', 'u0406', 'u0407', 'u0408', 'u040B', 'u042E', 'u042F', 'u0402', 'u0462', 'u046A', 'u0472', 'u0474', 'u0478', 'u0496', 'u049A', 'u049C', 'u04A2', 'u04AE', 'u04B0', 'u04B2', 'u04B8', 'u04BA', 'u04C9', 'u04D8', 'u04DE', 'u04E0', 'u04E2', 'u04E4', 'u04E6', 'u04E8', 'u04EA', 'u04EE', 'u04F0', 'u04F2', 'u04F4', 'u04FE', 'u0430', 'u0431', 'u0432', 'u0433', 'u0453', 'u0491', 'u0493', 'u0434', 'u0435', 'u0450', 'u0451', 'u0436', 'u0437', 'u0438', 'u0439', 'u045D', 'u043A', 'u045C', 'u043B', 'u043C', 'u043D', 'u043E', 'u043F', 'u0440', 'u0441', 'u0442', 'u0443', 'u045E', 'u0444', 'u0445', 'u0447', 'u0446', 'u0448', 'u0449', 'u045F', 'u044C', 'u044B', 'u044A', 'u0459', 'u045A', 'u0455', 'u0454', 'u044D', 'u0456', 'u0457', 'u0458', 'u045B', 'u044E', 'u044F', 'u0452', 'u0463', 'u046B', 'u0473', 'u0475', 'u0479', 'u0497', 'u049B', 'u049D', 'u04A3', 'u04AF', 'u04B1', 'u04B3', 'u04B9', 'u04BB', 'u04CA', 'u04D9', 'u04DF', 'u04E1', 'u04E3', 'u04E5', 'u04E7', 'u04E9', 'u04EB', 'u04EF', 'u04F1', 'u04F3', 'uni04F5', 'u04FF', 'Alpha', 'Beta', 'Gamma', 'u0394', 'Epsilon', 'Zeta', 'Eta', 'Theta', 'Iota', 'Kappa', 'Lambda', 'Mu', 'Nu', 'Xi', 'Omicron', 'Pi', 'Rho', 'Sigma', 'Tau', 'Upsilon', 'Phi', 'Chi', 'Psi', 'u03A9', 'Alphatonos', 'Epsilontonos', 'Etatonos', 'Iotatonos', 'Omicrontonos', 'Upsilontonos', 'Omegatonos', 'Iotadieresis', 'Upsilondieresis', 'u0370', 'u0372', 'u0376', 'u03D8', 'u03DA', 'u03DC', 'u03DE', 'u03E0', 'u03CF', 'uni03D2', 'u03D3', 'u03D4', 'u03F4', 'u03F7', 'u03F9', 'u03FA', 'u03FD', 'u03FE', 'u03FF', 'u1F08', 'u1F09', 'u1F0A', 'u1F0B', 'u1F0C', 'u1F0D', 'u1F0E', 'u1F0F', 'u1FBA', 'u1FBB', 'u1FB8', 'u1FB9', 'u1FBC', 'u1F88', 'u1F89', 'u1F8A', 'u1F8B', 'u1F8C', 'u1F8D', 'u1F8E', 'u1F8F', 'u1F18', 'u1F19', 'u1F1A', 'u1F1B', 'u1F1C', 'u1F1D', 'u1FC8', 'u1FC9', 'u1F28', 'u1F29', 'u1F2A', 'u1F2B', 'u1F2C', 'u1F2D', 'u1F2E', 'u1F2F', 'u1FCA', 'u1FCB', 'u1FCC', 'u1F98', 'u1F99', 'u1F9A', 'u1F9B', 'u1F9C', 'u1F9D', 'u1F9E', 'u1F9F', 'u1F38', 'u1F39', 'u1F3A', 'u1F3B', 'u1F3C', 'u1F3D', 'u1F3E', 'u1F3F', 'u1FDA', 'u1FDB', 'u1FD8', 'u1FD9', 'u1F48', 'u1F49', 'u1F4A', 'u1F4B', 'u1F4C', 'u1F4D', 'u1FF8', 'u1FF9', 'u1FEC', 'u1F59', 'u1F5B', 'u1F5D', 'u1F5F', 'u1FEA', 'u1FEB', 'u1FE8', 'u1FE9', 'u1F68', 'u1F69', 'u1F6A', 'u1F6B', 'u1F6C', 'u1F6D', 'u1F6E', 'u1F6F', 'u1FFA', 'u1FFB', 'u1FFC', 'u1FA8', 'u1FA9', 'u1FAA', 'u1FAB', 'u1FAC', 'u1FAD', 'u1FAE', 'u1FAF', 'u037F', 'alpha', 'beta', 'gamma', 'delta', 'epsilon', 'zeta', 'eta', 'theta', 'iota', 'kappa', 'lambda', 'u03BC', 'nu', 'xi', 'omicron', 'pi', 'rho', 'uni03C2', 'sigma', 'tau', 'upsilon', 'phi', 'chi', 'psi', 'omega', 'iotatonos', 'iotadieresis', 'iotadieresistonos', 'upsilontonos', 'upsilondieresis', 'upsilondieresistonos', 'omicrontonos', 'omegatonos', 'alphatonos', 'epsilontonos', 'etatonos', 'u0371', 'u0373', 'u0377', 'u037B', 'u037C', 'u037D', 'u03D9', 'u03DB', 'u03DD', 'u03DF', 'u03E1', 'u03D7', 'u03D0', 'uni03D1', 'uni03D5', 'uni03D6', 'u03F0', 'u03F1', 'u03F2', 'u03F3', 'u03F5', 'u03F8', 'u03FB', 'u03FC', 'u1F00', 'u1F01', 'u1F02', 'u1F03', 'u1F04', 'u1F05', 'u1F06', 'u1F07', 'u1F70', 'u1F71', 'u1FB6', 'u1FB0', 'u1FB1', 'u1FB3', 'u1FB2', 'u1FB4', 'u1F80', 'u1F81', 'u1F82', 'u1F83', 'u1F84', 'u1F85', 'u1F86', 'u1F87', 'u1FB7', 'u1F10', 'u1F11', 'u1F12', 'u1F13', 'u1F14', 'u1F15', 'u1F72', 'u1F73', 'u1F20', 'u1F21', 'u1F22', 'u1F23', 'u1F24', 'u1F25', 'u1F26', 'u1F27', 'u1F74', 'u1F75', 'u1FC6', 'u1FC3', 'u1FC2', 'u1FC4', 'u1F90', 'u1F91', 'u1F92', 'u1F93', 'u1F94', 'u1F95', 'u1F96', 'u1F97', 'u1FC7', 'u1F30', 'u1F31', 'u1F32', 'u1F33', 'u1F34', 'u1F35', 'u1F36', 'u1F37', 'u1F76', 'u1F77', 'u1FD6', 'u1FD0', 'u1FD1', 'u1FD2', 'u1FD3', 'u1FD7', 'u1F40', 'u1F41', 'u1F42', 'u1F43', 'u1F44', 'u1F45', 'u1F78', 'u1F79', 'u1FE4', 'u1FE5', 'u1F50', 'u1F51', 'u1F52', 'u1F53', 'u1F54', 'u1F55', 'u1F56', 'u1F57', 'u1F7A', 'u1F7B', 'u1FE6', 'u1FE0', 'u1FE1', 'u1FE2', 'u1FE3', 'u1FE7', 'u1F60', 'u1F61', 'u1F62', 'u1F63', 'u1F64', 'u1F65', 'u1F66', 'u1F67', 'u1F7C', 'u1F7D', 'u1FF6', 'u1FF3', 'u1FF2', 'u1FF4', 'u1FA0', 'u1FA1', 'u1FA2', 'u1FA3', 'u1FA4', 'u1FA5', 'u1FA6', 'u1FA7', 'u1FF7', 'u1FBE', 'u037A', 'u31B4', 'u31B5', 'u31B6', 'u31B7', 'u2132', 'u210A', 'u210E', 'u210F', 'u214E', 'u2095', 'u2096', 'u2097', 'u2098', 'u2099', 'u209A', 'u209B', 'u209C', 'u1D39', 'u1D3A', 'u1D3C', 'u1D3E', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'fraction', 'u2080', 'u2081', 'u2082', 'u2083', 'u2084', 'u2085', 'u2086', 'u2087', 'u2088', 'u2089', 'u2070', 'u00B9', 'u00B2', 'u00B3', 'u2074', 'u2075', 'u2076', 'u2077', 'u2078', 'u2079', 'space', 'u00A0', 'u2004', 'u2005', 'u2006', 'u2007', 'u2008', 'u2009', 'u200A', 'anoteleia', 'u037E', 'period', 'comma', 'colon', 'semicolon', 'exclam', 'exclamdown', 'question', 'questiondown', 'bullet', 'asterisk', 'numbersign', 'slash', 'backslash', 'u203D', 'u2E2E', 'hyphen', 'u2E3A', 'u2E3B', 'u2E40', 'underscore', 'u208D', 'u208E', 'parenleft', 'parenright', 'braceleft', 'braceright', 'bracketleft', 'bracketright', 'u207D', 'u207E', 'quotesinglbase', 'quotedblbase', 'quotedblleft', 'quotedblright', 'quoteleft', 'quoteright', 'quotereversed', 'u201F', 'guillemotleft', 'guillemotright', 'guilsinglleft', 'guilsinglright', 'u2034', 'u2036', 'u2037', 'quotedbl', 'quotesingle', 'u02E0', 'florin', 'u0374', 'u0375', 'u2129', 'u03F6', 'u0E3F', 'u02E5', 'u02E6', 'u02E7', 'u02E8', 'u02E9', 'u02F0', 'u02F7', 'u02DE', 'u02E4', 'u275B', 'u275C', 'u275D', 'u275E', 'u275F', 'u2760', 'at', 'ampersand', 'paragraph', 'section', 'copyright', 'registered', 'degree', 'minute', 'second', 'bar', 'brokenbar', 'u2113', 'u1F12F', 'u218A', 'u218B', 'u2373', 'u2374', 'u2375', 'u2376', 'u2377', 'u2378', 'u2379', 'u237A', 'u23E8', 'u2422', 'Euro', 'cent', 'colonmonetary', 'currency', 'dollar', 'dong', 'franc', 'lira', 'sterling', 'u20A0', 'u20A2', 'u20A6', 'u20A8', 'u20A9', 'u20AA', 'u20AD', 'u20AE', 'u20B4', 'u20B9', 'u20BD', 'yen', 'asciitilde', 'dotmath', 'plus', 'minus', 'multiply', 'divide', 'equal', 'greater', 'less', 'plusminus', 'logicalnot', 'asciicircum', 'product', 'summation', 'radical', 'partialdiff', 'uni03BC', 'percent', 'periodcentered', 'u2052', 'u207A', 'u207B', 'u207C', 'u208A', 'u208B', 'u208C', 'u2141', 'u2142', 'u2143', 'u2144', 'u2215', 'u2216', 'u221B', 'u221C', 'tonos', 'dieresistonos', 'u1FBF', 'u1FBD', 'u1FFE', 'u1FCD', 'u1FDD', 'u1FCE', 'u1FDE', 'u1FCF', 'u1FDF', 'u1FED', 'u1FEE', 'u1FC1', 'u1FEF', 'u1FFD', 'u1FC0', 'dieresis', 'grave', 'acute', 'u02EA', 'u02EB', 'breve', 'macron', 'u02B9', 'u02BA', 'u02BB', 'u02BC', 'u02BD', 'u02C0', 'u02C1', 'u02C8', 'u02CC', 'u02D0', 'u02D1', 'u2E55', 'u2E56', 'u31BB', 'uA4D0', 'uA4D1', 'uA4D2', 'uA4D3', 'uA4D4', 'uA4D5', 'uA4D6', 'uA4D7', 'uA4D8', 'uA4D9', 'uA4DA', 'uA4DB', 'uA4DC', 'uA4DD', 'uA4DE', 'uA4DF', 'uA4E0', 'uA4E1', 'uA4E2', 'uA4E3', 'uA4E4', 'uA4E5', 'uA4E6', 'uA4E7', 'uA4E8', 'uA4E9', 'uA4EA', 'uA4EB', 'uA4EC', 'uA4ED', 'uA4EE', 'uA4EF', 'uA4F0', 'uA4F1', 'uA4F2', 'uA4F3', 'uA4F4', 'uA4F5', 'uA4F6', 'uA4F7', 'uA4F8', 'uA4F9', 'uA4FA', 'uA4FB', 'uA4FC', 'uA4FD', 'uA4FE', 'uA4FF', 'uniA7AE', 'uA7AF', 'u11FB0', 'glyph33707', 'glyph33708', 'glyph33709', 'glyph33710', 'glyph33711', 'glyph33712', 'glyph33713', 'glyph33714', 'glyph33715', 'glyph33716', 'glyph33717', 'glyph33718', 'glyph33719', 'glyph33720', 'glyph33721', 'glyph33722', 'glyph33723', 'glyph33724', 'glyph33725', 'glyph33726', 'colon.calt', 'a.salt', 'nonmarkingreturn', 'cedilla', 'circumflex', 'dotaccent', 'figuredash', 'hungarumlaut', 'ogonek', 'ring', 'tilde', 'uni025C', 'uni02C9', 'uni02CD', 'uni02CE', 'uni02CF', 'uni02EC', 'uni02EF', 'uni02F3', 'uni2000', 'uni2002', 'uni2035', 'uni203E', 'uni2051', 'uni2201', 'uni220A', 'uni220D', 'uni2303', 'uni2423', 'uni2772', 'uni2773', 'uni27E8', 'uni27E9', 'uni27EA', 'uni27EB', 'uni303F', 'uniFF61', 'uniFF62', 'uniFF63', 'uniFF64', 'uniFF65', 'uniFF66', 'uniFF67', 'uniFF68', 'uniFF69', 'uniFF6A', 'uniFF6B', 'uniFF6C', 'uniFF6D', 'uniFF6E', 'uniFF6F', 'uniFF70', 'uniFF71', 'uniFF72', 'uniFF73', 'uniFF74', 'uniFF75', 'uniFF76', 'uniFF77', 'uniFF78', 'uniFF79', 'uniFF7A', 'uniFF7B', 'uniFF7C', 'uniFF7D', 'uniFF7E', 'uniFF7F', 'uniFF80', 'uniFF81', 'uniFF82', 'uniFF83', 'uniFF84', 'uniFF85', 'uniFF86', 'uniFF87', 'uniFF88', 'uniFF89', 'uniFF8A', 'uniFF8B', 'uniFF8C', 'uniFF8D', 'uniFF8E', 'uniFF8F', 'uniFF90', 'uniFF91', 'uniFF92', 'uniFF93', 'uniFF94', 'uniFF95', 'uniFF96', 'uniFF97', 'uniFF98', 'uniFF99', 'uniFF9A', 'uniFF9B', 'uniFF9C', 'uniFF9D', 'uniFF9E', 'uniFF9F', 'uniFFE8']


    [code: mono-outliers]

⚠️ WARN Check if OS/2 xAvgCharWidth is correct.
  • ⚠️ WARN

    OS/2 xAvgCharWidth is 500 but it should be 961 which corresponds to the average of the widths of all glyphs in the font.


    [code: xAvgCharWidth-wrong]
⚠️ WARN Check accent of Lcaron, dcaron, lcaron, tcaron
  • ⚠️ WARN

    Lcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    dcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    lcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    tcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

⚠️ WARN Does the font contain chws and vchw features?
⚠️ WARN Check if each glyph has the recommended amount of contours.
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

The following glyphs do not have the recommended number of contours:

- Glyph name: m	Contours detected: 2	Expected: 1
  • Glyph name: AE Contours detected: 3 Expected: 2

  • Glyph name: germandbls Contours detected: 2 Expected: 1

  • Glyph name: Hbar Contours detected: 3 Expected: 2

  • Glyph name: OE Contours detected: 3 Expected: 2

  • Glyph name: u019C Contours detected: 2 Expected: 1

  • Glyph name: u01C5 Contours detected: 3 Expected: 4

  • Glyph name: u01C6 Contours detected: 3 Expected: 4

  • Glyph name: u01CB Contours detected: 2 Expected: 3

  • Glyph name: u01E2 Contours detected: 4 Expected: 3

  • 37 more.

Use -F or --full-lists to disable shortening of long lists.

[code: contour-count]
⚠️ WARN Does GPOS table have kerning information? This check skips monospaced fonts as defined by post.isFixedPitch value
  • ⚠️ WARN

    GPOS table lacks kerning information.


    [code: lacks-kern-info]
⚠️ WARN Are there caret positions declared for every ligature?
  • ⚠️ WARN

    This font lacks caret position values for ligature glyphs on its GDEF table.


    [code: lacks-caret-pos]
⚠️ WARN Check math signs have the same width.
  • ⚠️ WARN

    The most common width is 1000 among a set of 59 math glyphs.
    The following math glyphs have a different width, though:

Width = 500: plusminus, multiply, less, logicalnot, plus, minus, greater, equal, asciitilde, divide

[code: width-outliers]
⚠️ WARN Check there are no overlapping path segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* AE (U+00C6): L<<54.0,203.0>--<52.0,202.0>> has the same coordinates as a previous segment.

* AEacute (U+01FC): L<<54.0,203.0>--<52.0,202.0>> has the same coordinates as a previous segment.

* u01E2 (U+01E2): L<<54.0,203.0>--<52.0,202.0>> has the same coordinates as a previous segment.

* Hbar (U+0126): B<<53.0,328.0>-<56.0,327.0>-<59.0,327.0>> has the same coordinates as a previous segment.

* u019C (U+019C): B<<391.0,23.0>-<391.0,20.0>-<391.0,18.0>> has the same coordinates as a previous segment.

* u019C (U+019C): B<<391.0,18.0>-<391.0,18.0>-<391.0,18.0>> has the same coordinates as a previous segment.

* u0271 (U+0271): B<<108.0,453.0>-<108.0,456.0>-<108.0,458.0>> has the same coordinates as a previous segment.

* u0271 (U+0271): B<<108.0,458.0>-<108.0,458.0>-<108.0,458.0>> has the same coordinates as a previous segment.

* u1D23 (U+1D23): B<<237.0,300.0>-<236.0,300.0>-<236.0,300.0>> has the same coordinates as a previous segment.

* u1E41 (U+1E41): B<<108.0,453.0>-<108.0,456.0>-<108.0,458.0>> has the same coordinates as a previous segment.

* 1050 more.

Use -F or --full-lists to disable shortening of long lists.

[code: overlapping-path-segments]
⚠️ WARN Checking that the typoAscender exceeds the yMax of the /Agrave.
  • ⚠️ WARN

    OS/2.sTypoAscender value should be greater than 886, but got 880 instead


    [code: typoAscender]
⚠️ WARN Check font contains no unreachable glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- acutecomb.1

- nonmarkingreturn

- one_slash_one_one.afrc

- three_slash_one_one.afrc

- two_slash_one_one.afrc

- uni0308.1

[code: unreachable-glyphs]

⚠️ WARN Glyph names are all valid?
  • ⚠️ WARN

    The following glyph names may be too long for some legacy systems which may expect a maximum 31-characters length limit:
    uni30AA30F330B030B930C830ED30FC30E0.dlig, uni30AA30F330B030B930C830ED30FC30E0.dlig.1, uni30AD30ED30EA30C330C830EB.dlig, uni30AD30ED30EA30C330C830EB.dlig.1, uni30D830AF30C830D130B930AB30EB.dlig and uni30D830AF30C830D130B930AB30EB.dlig.1


    [code: legacy-long-names]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
  • ⚠️ WARN

    Family metadata at ofl/lxgwwenkaimonotc does not have an article.


    [code: lacks-article]
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • ⚠️ WARN

    It seems that LXGW is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry.


    [code: profile-not-found]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
  • ⚠️ WARN

    The following codepoints supported by the font are not covered by
    any subsets defined in the font's metadata file, and will never
    be served. You can solve this by either manually adding additional
    subset declarations to METADATA.pb, or by editing the glyphset
    definitions.

  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: cherokee, coptic, math, tifinagh
  • U+0305 COMBINING OVERLINE: try adding one of: coptic, math, gothic, elbasan, glagolitic
  • U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh
  • U+0307 COMBINING DOT ABOVE: try adding one of: coptic, math, syriac, tai-le, duployan, todhri, tifinagh, canadian-aboriginal, old-permic, hebrew, malayalam
  • U+030A COMBINING RING ABOVE: try adding one of: duployan, syriac
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le 13790 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: chinese-hongkong, cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, lisu, menu, vietnamese

[code: unreachable-subsetting]
⚠️ WARN On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.
  • ⚠️ WARN

    The DESCRIPTION.en_us.html file in this family has not changed in comparison to the latest font release on the google/fonts github repo.
    Please consider mentioning note-worthy improvements made to the family recently.


    [code: description-not-updated]
⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.
  • ⚠️ WARN

    The dot of soft dotted characters used in orthographies must disappear in the following strings: i̊ i̋ i̍ j̀ j́ j̃ j̄ j̈ j̑ į̀ į́ į̂ į̃ į̄ į̌ ɨ̀ ɨ́ ɨ̂ ɨ̃ ɨ̄ ɨ̈ ɨ̋ ɨ̌ ɨ̏ ɨ̧̀ ɨ̧́ ɨ̧̂ ɨ̧̌ ɨ̱̀ ɨ̱́ ɨ̱̈ і́ ḭ̀ ḭ́ ḭ̄ ị̀ ị́ ị̂ ị̃ ị̄

The dot of soft dotted characters should disappear in other cases, for example: i̅ i̇ i̽ i̖̅ i̖̇ i̖̊ i̖̋ i̖̍ i̖̽ i̗̅ i̗̇ i̗̊ i̗̋ i̗̍ i̗̽ i̘̅ i̘̇ i̘̊ i̘̋ i̘̍

Your font fully covers the following languages that require the soft-dotted feature: Western Krahn (Latn, 97,800 speakers), Dutch (Latn, 31,709,104 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Kom (Latn, 360,685 speakers), Makaa (Latn, 221,000 speakers), Ebira (Latn, 2,200,000 speakers), Han (Latn, 6 speakers), Vute (Latn, 21,000 speakers), Teke-Ebo (Latn, 260,000 speakers), Ijo, Southeast (Latn, 2,471,000 speakers), Southern Tutchone (Latn, 65 speakers), Belarusian (Cyrl, 10,064,517 speakers), Igbo (Latn, 27,823,640 speakers), Gulay (Latn, 250,478 speakers), Ma’di (Latn, 584,000 speakers), Nzakara (Latn, 50,000 speakers), Mango (Latn, 77,000 speakers), Abua (Latn, 25,000 speakers), Ekpeye (Latn, 226,000 speakers), Koonzime (Latn, 40,000 speakers), Mundani (Latn, 34,000 speakers), Northern Tutchone (Latn, 85 speakers), Lugbara (Latn, 2,200,000 speakers), South Central Banda (Latn, 244,000 speakers), Nateni (Latn, 100,000 speakers), Ikwere (Latn, 717,000 speakers), Aghem (Latn, 38,843 speakers), Bafut (Latn, 158,146 speakers), Navajo (Latn, 166,319 speakers), Longto (Latn, 5,000 speakers), Zapotec (Latn, 490,000 speakers), Ngbaka (Latn, 1,020,000 speakers), Kaska (Latn, 125 speakers), Yala (Latn, 200,000 speakers), Sar (Latn, 500,000 speakers), Lithuanian (Latn, 2,357,094 speakers), Dii (Latn, 71,000 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Cicipu (Latn, 44,000 speakers), Ejagham (Latn, 120,000 speakers), Mfumte (Latn, 79,000 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Bete-Bendi (Latn, 100,000 speakers), Basaa (Latn, 332,940 speakers), Heiltsuk (Latn, 300 speakers), Avokaya (Latn, 100,000 speakers), Fur (Latn, 1,230,163 speakers), Southern Kisi (Latn, 360,000 speakers), Keliko (Latn, 63,000 speakers), Dan (Latn, 1,099,244 speakers).

[code: soft-dotted]
⚠️ WARN Check the direction of the outermost contour in each glyph
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* .notdef has a counter-clockwise outer contour

* A (U+0041) has a counter-clockwise outer contour

* AE (U+00C6) has a counter-clockwise outer contour

* AEacute (U+01FC) has a counter-clockwise outer contour

* AEacute (U+01FC) has a counter-clockwise outer contour

* A_M.dlig has a counter-clockwise outer contour

* Aacute (U+00C1) has a counter-clockwise outer contour

* Aacute (U+00C1) has a counter-clockwise outer contour

* Abreve (U+0102) has a counter-clockwise outer contour

* Abreve (U+0102) has a counter-clockwise outer contour

* 62859 more.

Use -F or --full-lists to disable shortening of long lists.

[code: ccw-outer-contour]
⚠️ WARN Do outlines contain any jaggy segments?
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* Acircumflex (U+00C2): B<<152.0,734.0>-<198.0,774.0>-<264.0,817.0>>/L<<264.0,817.0>--<261.0,815.0>> = 0.6052145972441519

* Aring (U+00C5): B<<281.0,707.0>-<269.0,713.0>-<259.0,715.0>>/L<<259.0,715.0>--<260.0,715.0>> = 11.309932474020195

* Ecircumflex (U+00CA): B<<152.0,734.0>-<198.0,774.0>-<263.0,817.0>>/L<<263.0,817.0>--<261.0,815.0>> = 11.513831184486982

* Hbar (U+0126): L<<59.0,327.0>--<53.0,328.0>>/B<<53.0,328.0>-<56.0,327.0>-<59.0,327.0>> = 8.972626614896315

* Icircumflex (U+00CE): B<<141.0,734.0>-<187.0,774.0>-<252.0,817.0>>/L<<252.0,817.0>--<250.0,815.0>> = 11.513831184486982

* Ocircumflex (U+00D4): B<<153.0,734.0>-<200.0,774.0>-<265.0,817.0>>/L<<265.0,817.0>--<263.0,815.0>> = 11.513831184486982

* PureWriter (U+E003): L<<772.0,190.0>--<766.0,180.0>>/B<<766.0,180.0>-<770.0,184.0>-<771.0,178.0>> = 14.036243467926484

* Ucircumflex (U+00DB): B<<152.0,734.0>-<198.0,774.0>-<264.0,817.0>>/L<<264.0,817.0>--<262.0,815.0>> = 11.915147071265041

* Uogonek (U+0172): B<<125.0,3.0>-<163.0,-21.0>-<188.0,-21.0>>/L<<188.0,-21.0>--<180.0,-22.0>> = 7.125016348901757

* W (U+0057): B<<188.0,601.0>-<168.0,424.0>-<148.0,216.0>>/B<<148.0,216.0>-<128.0,469.0>-<112.0,622.0>> = 10.012235671662566

* 8605 more.

Use -F or --full-lists to disable shortening of long lists.

[code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines?
  • ⚠️ WARN

    The following glyphs have semi-vertical/semi-horizontal lines:

* Eng (U+014A): L<<371.0,589.0>--<369.0,159.0>>

* Psi (U+03A8): L<<294.0,46.0>--<293.0,181.0>>

* Psi (U+03A8): L<<382.0,686.0>--<380.0,443.0>>

* T_B.dlig: L<<219.0,624.0>--<218.0,107.0>>

* Uhorn (U+01AF): L<<132.0,210.0>--<133.0,680.0>>

* bar (U+007C): L<<218.0,719.0>--<219.0,-29.0>>

* beta (U+03B2): L<<148.0,103.0>--<149.0,452.0>>

* beta (U+03B2): L<<67.0,459.0>--<68.0,-115.0>>

* daggerdbl (U+2021): L<<538.0,-18.0>--<537.0,172.0>>

* four_slash_one_one.afrc: L<<608.0,574.0>--<609.0,697.0>>

* 31722 more.

Use -F or --full-lists to disable shortening of long lists.

[code: found-semi-vertical]
ℹ️ INFO List all superfamily filepaths
  • ℹ️ INFO

    ofl/lxgwwenkaimonotc


    [code: family-path]
ℹ️ INFO EPAR table present in font?
ℹ️ INFO Show hinting filesize impact.
  • ℹ️ INFO

    Hinting filesize impact:

ofl/lxgwwenkaimonotc/LXGWWenKaiMonoTC-Bold.ttf
Dehinted Size 12.3Mb
Hinted Size 12.3Mb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables?
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- BASE

- GSUB

- gasp

- vhea

- vmtx

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL?
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
  • ℹ️ INFO

    This font doesn't have an ARTICLE.en_us.html file.


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
ℹ️ INFO Ensure fonts have ScriptLangTags declared on the 'meta' table.
  • ℹ️ INFO

    Latn,Hant


    [code: dlng-tag]

  • ℹ️ INFO

    Latn,Hant,ja,el,Cyrl


    [code: slng-tag]

ℹ️ INFO Font has old ttfautohint applied?
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.331']


    [code: version-not-detected]
[2] Family checks
🔥 FAIL Directory name in GFonts repo structure must match NameID 1 of the regular.
  • 🔥 FAIL

    Family name on the name table ('霞鶩文楷等寬 TC') does not match directory name in the repo structure ('lxgwwenkaimonotc'). Expected '霞鶩文楷等寬tc'.


    [code: mismatch]
ℹ️ INFO Check axis ordering on the STAT table.
  • ℹ️ INFO

    All of the fonts lack a STAT table.


    [code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
1 0 16 62 171 31 414 0
0% 0% 2% 9% 25% 4% 60% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

@lxgw
Copy link

lxgw commented Dec 12, 2024

Are the language-specific codes of all features removed, or only vert feature?

@NightFurySL2001
Copy link
Contributor

@aaronbell I think you can submit a pull request to the upstream for the FEA code changes. It might also be helpful if you can merge some commits from upstream to bump the version with #8216.

@emmamarichal
Copy link
Collaborator

@aaronbell I let you take a look to this: #8714 (comment) before I start the review, in case you have some changes to make :)
Ping me once it's ready to review! thanks!

@emmamarichal emmamarichal added the -- Needs confirmation from upstream or onboarder label Dec 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-- Needs confirmation from upstream or onboarder I Small Fix bugs fixed but nothing added II CJK Chinese, Japanese, Korean scripts
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Issue with vert feature not working in macOS/iOS
4 participants