Skip to content

Conversation

@aaronbell
Copy link
Collaborator

@aaronbell aaronbell commented Jan 23, 2026

Moved source repository to: https://github.com/googlefonts/mashanzheng

Updated the following glyphs:
佛 - Fixed path issue causing a counter problem
冷 - Added bottom stroke to align with 泠
舞 - Removed extra top stroke and enlarged the radical (see far right form versus second right form)

538709673-0fc8bb17-a4e3-4345-8c81-370d21d8cfbd

井 - Designed a new glyph as an incorrect was was previously in the unicode slot (new glyph on far left)
538602839-b723359b-abac-47ae-a86a-7e8832237a10

Also added fwid OT features to access the full range of .full glyphs.
No other modifications made to the font (ala vertical metrics, etc.) for backwards compat reasons.

Version bumped to 2.002

Closes #10133

Includes updates to the following glyphs: 佛冷舞井
@github-actions
Copy link
Contributor

FontSpector report

fontspector version: 1.5.2

Check results

[7] ofl/mashanzheng
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. (googlefonts/metadata/consistent_repo_urls)
  • 🔥 FAIL Please add a family.source.repository_url entry. [code: lacks-repo-url]
🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/mashanzheng/MaShanZheng-Regular.ttf missing required codepoints:
  • 0x00AE: REGISTERED SIGN
  • 0x00B7: MIDDLE DOT [code: missing-codepoints]
⚠️ WARN METADATA.pb: Check for primary_script (googlefonts/metadata/primary_script)
  • ⚠️ WARN METADATA.pb: primary_script is 'Hans' but should be 'Hani'. [code: wrong-primary-script]
⚠️ WARN METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • ⚠️ WARN Please add 'japanese' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

  • ⚠️ WARN Please add 'chinese-traditional' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

  • ⚠️ WARN Please add 'chinese-hongkong' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/mashanzheng/MaShanZheng-Regular.ttf: 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+02C7 CARON: try adding one of: canadian-aboriginal, tifinagh, latin-ext, yi
  • U+2015 HORIZONTAL BAR: try adding adlam
  • U+2025 TWO DOT LEADER: try adding phags-pa
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+4E2C CJK UNIFIED IDEOGRAPH-4E2C: try adding chinese-hongkong
  • U+4EA0 CJK UNIFIED IDEOGRAPH-4EA0: try adding japanese
  • U+4EC2 CJK UNIFIED IDEOGRAPH-4EC2: try adding japanese
  • U+4F7E CJK UNIFIED IDEOGRAPH-4F7E: try adding one of: chinese-hongkong, chinese-traditional
  • U+5025 CJK UNIFIED IDEOGRAPH-5025: try adding japanese
    ... and 286 others

Or you can add the above codepoints to one of the subsets supported by the font: chinese-simplified, latin, menu [code: unreachable-subsetting]

ℹ️ INFO Check for presence of an ARTICLE.en_us.html file (googlefonts/description/has_article)
  • ℹ️ INFO This font doesn't have an ARTICLE.en_us.html file. [code: missing-article]
ℹ️ INFO Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[15] ofl/mashanzheng/MaShanZheng-Regular.ttf
⚠️ WARN Does the font contain chws and vchw features? (cjk_chws_feature)
⚠️ WARN Check if each glyph has the recommended amount of contours. (contour_count)
  • ⚠️ WARN This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are
    inferred from the typical amounts 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:

  • uniFF2F (U+FF2F): found 3, expected one of: {2, 6, 7}
  • uniFF33 (U+FF33): found 2, expected one of: {3, 1}
  • uniFF37 (U+FF37): found 2, expected one of: {13, 1, 3}
  • uni300E (U+300E): found 4, expected one of: {2}
  • uni300F (U+300F): found 4, expected one of: {2} [code: contour-count]
⚠️ WARN Ensure files are not too large. (file_size)
  • ⚠️ WARN Font file is 5.86 MB; ideally it should be less than 1.05 MB [code: large-font]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN The following separator glyphs are missing:
  • U+2028
  • U+2029 [code: missing-separator-glyphs]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • A (U+0041): Quad(QuadBez { p0: (450.0, 369.0), p1: (446.0, 457.0), p2: (442.0, 637.0) })/Quad(QuadBez { p0: (442.0, 637.0), p1: (434.0, 591.0), p2: (417.5, 499.0) }) = 11.138836963141133
  • uniFF21 (U+FF21): Quad(QuadBez { p0: (664.0, 369.0), p1: (660.0, 457.0), p2: (656.0, 637.0) })/Quad(QuadBez { p0: (656.0, 637.0), p1: (648.0, 591.0), p2: (631.5, 499.0) }) = 11.138836963141133
  • uni4E95 (U+4E95): Quad(QuadBez { p0: (517.0, 206.0), p1: (514.0, 352.0), p2: (515.0, 346.0) })/Line(Line { p0: (515.0, 346.0), p1: (515.0, 350.0) }) = 9.462322208025613
  • uni503A (U+503A): Line(Line { p0: (504.0, 115.0), p1: (498.0, 102.0) })/Line(Line { p0: (498.0, 102.0), p1: (505.0, 112.0) }) = 10.216879629726717
  • uni56FA (U+56FA): Line(Line { p0: (589.0, 60.0), p1: (571.0, 59.0) })/Line(Line { p0: (571.0, 59.0), p1: (591.0, 56.0) }) = 11.710595729812393
  • uni572E (U+572E): Line(Line { p0: (379.0, 392.0), p1: (395.0, 405.0) })/Quad(QuadBez { p0: (395.0, 405.0), p1: (394.0, 404.0), p2: (388.0, 396.0) }) = 5.906141113770558
  • uni5815 (U+5815): Line(Line { p0: (677.0, 357.0), p1: (675.0, 379.0) })/Quad(QuadBez { p0: (675.0, 379.0), p1: (673.0, 365.0), p2: (662.0, 357.5) }) = 13.32453126189081
  • uni594B (U+594B): Quad(QuadBez { p0: (374.0, 270.0), p1: (376.0, 321.0), p2: (394.0, 325.0) })/Line(Line { p0: (394.0, 325.0), p1: (382.0, 325.0) }) = 12.528807709151492
  • uni5983 (U+5983): Line(Line { p0: (928.0, 199.0), p1: (933.0, 220.0) })/Line(Line { p0: (933.0, 220.0), p1: (933.0, 203.0) }) = 13.39249775375107
    ... and 34 others [code: found-jaggy-segments]
⚠️ WARN Check there are no overlapping path segments (overlapping_path_segments)
  • ⚠️ WARN The following glyphs have overlapping path segments:
  • a (U+0061): Quad(QuadBez { p0: (86.0, 160.0), p1: (187.0, 247.0), p2: (246.0, 423.0) }) has the same coordinates as a previous segment.
  • k (U+006B): Quad(QuadBez { p0: (147.0, 323.0), p1: (206.0, 341.0), p2: (256.0, 407.0) }) has the same coordinates as a previous segment.
  • uniFF41 (U+FF41): Quad(QuadBez { p0: (370.0, 160.0), p1: (471.0, 247.0), p2: (530.0, 423.0) }) has the same coordinates as a previous segment.
  • uniFF4B (U+FF4B): Quad(QuadBez { p0: (472.0, 323.0), p1: (531.0, 341.0), p2: (581.0, 407.0) }) has the same coordinates as a previous segment.
  • uniFF20 (U+FF20): Quad(QuadBez { p0: (428.0, 308.0), p1: (505.0, 375.0), p2: (550.0, 508.0) }) has the same coordinates as a previous segment.
  • at (U+0040): Quad(QuadBez { p0: (228.0, 308.0), p1: (305.0, 375.0), p2: (350.0, 508.0) }) has the same coordinates as a previous segment. [code: overlapping-path-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • J (U+004A): Line(Line { p0: (344.0, 770.0), p1: (461.0, 771.0) })
  • uniFF2A (U+FF2A): Line(Line { p0: (611.0, 770.0), p1: (728.0, 771.0) })
  • uni4E18 (U+4E18): Line(Line { p0: (424.0, 197.0), p1: (425.0, 71.0) })
  • uni4E3E (U+4E3E): Line(Line { p0: (400.0, -83.0), p1: (399.0, 51.0) })
  • uni4E4E (U+4E4E): Line(Line { p0: (454.0, 211.0), p1: (455.0, 355.0) })
  • uni4EAB (U+4EAB): Line(Line { p0: (686.0, 267.0), p1: (813.0, 268.0) })
  • uni4EC0 (U+4EC0): Line(Line { p0: (581.0, 507.0), p1: (582.0, 638.0) })
  • uni4EE3 (U+4EE3): Line(Line { p0: (516.0, 487.0), p1: (515.0, 606.0) })
  • uni4EF0 (U+4EF0): Line(Line { p0: (653.0, 277.0), p1: (654.0, 534.0) })
    ... and 182 others [code: found-semi-vertical]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. (googlefonts/meta/script_lang_tags)
  • ⚠️ WARN This font file does not have a 'meta' table. [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. (googlefonts/vendor_id)
  • ⚠️ WARN OS/2 VendorID value 'ZYEC' is not yet recognized.
    If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
ℹ️ INFO Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Ma Shan Zheng" seems to be already in use.
    Please visit http://namecheck.fontdata.com/ for more info. [code: name-collision]
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
MaShanZheng-Regular.ttf
Dehinted Size 5858024
Hinted Size 5858048
Increase 24
Change 0.0 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? (googlefonts/gasp)
  • ℹ️ INFO These are the ppm ranges declared on the gasp table:

| PPM <= 65535 | - Use grid-fitting |
| | - Use grayscale rendering |
| | - Use gridfitting with ClearType symmetric smoothing |

- Use smoothing along multiple axes with ClearType®
[code: ranges]
ℹ️ INFO Font has old ttfautohint applied? (googlefonts/old_ttfautohint)
  • ℹ️ 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 2.002 [code: version-not-detected]
[1] ofl/mashanzheng/DESCRIPTION.en_us.html
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo URL? (googlefonts/description/git_url)
  • 🔥 FAIL Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file. [code: lacks-git-url]
[2] ofl/mashanzheng/METADATA.pb
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? (googlefonts/metadata/designer_profiles)
  • ⚠️ WARN It seems that mashanzheng 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]
ℹ️ INFO Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
3 17 8 115 65
1% 8% 4% 56% 32%

Updating METADATA file
Updating description file with upstream link
@github-actions
Copy link
Contributor

FontSpector report

fontspector version: 1.5.2

Check results

[6] ofl/mashanzheng
🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/mashanzheng/MaShanZheng-Regular.ttf missing required codepoints:
  • 0x00AE: REGISTERED SIGN
  • 0x00B7: MIDDLE DOT [code: missing-codepoints]
⚠️ WARN METADATA.pb: Check for primary_script (googlefonts/metadata/primary_script)
  • ⚠️ WARN METADATA.pb: primary_script is 'Hans' but should be 'Hani'. [code: wrong-primary-script]
⚠️ WARN METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • ⚠️ WARN Please add 'japanese' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

  • ⚠️ WARN Please add 'chinese-hongkong' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

  • ⚠️ WARN Please add 'chinese-traditional' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/mashanzheng/MaShanZheng-Regular.ttf: 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+02C7 CARON: try adding one of: yi, canadian-aboriginal, tifinagh, latin-ext
  • U+2015 HORIZONTAL BAR: try adding adlam
  • U+2025 TWO DOT LEADER: try adding phags-pa
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+4E2C CJK UNIFIED IDEOGRAPH-4E2C: try adding chinese-hongkong
  • U+4EA0 CJK UNIFIED IDEOGRAPH-4EA0: try adding japanese
  • U+4EC2 CJK UNIFIED IDEOGRAPH-4EC2: try adding japanese
  • U+4F7E CJK UNIFIED IDEOGRAPH-4F7E: try adding one of: chinese-traditional, chinese-hongkong
  • U+5025 CJK UNIFIED IDEOGRAPH-5025: try adding japanese
    ... and 286 others

Or you can add the above codepoints to one of the subsets supported by the font: chinese-simplified, latin, menu [code: unreachable-subsetting]

ℹ️ INFO Check for presence of an ARTICLE.en_us.html file (googlefonts/description/has_article)
  • ℹ️ INFO This font doesn't have an ARTICLE.en_us.html file. [code: missing-article]
ℹ️ INFO Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[15] ofl/mashanzheng/MaShanZheng-Regular.ttf
⚠️ WARN Does the font contain chws and vchw features? (cjk_chws_feature)
⚠️ WARN Check if each glyph has the recommended amount of contours. (contour_count)
  • ⚠️ WARN This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are
    inferred from the typical amounts 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:

  • uniFF2F (U+FF2F): found 3, expected one of: {2, 6, 7}
  • uniFF33 (U+FF33): found 2, expected one of: {1, 3}
  • uniFF37 (U+FF37): found 2, expected one of: {1, 3, 13}
  • uni300E (U+300E): found 4, expected one of: {2}
  • uni300F (U+300F): found 4, expected one of: {2} [code: contour-count]
⚠️ WARN Ensure files are not too large. (file_size)
  • ⚠️ WARN Font file is 5.86 MB; ideally it should be less than 1.05 MB [code: large-font]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN The following separator glyphs are missing:
  • U+2028
  • U+2029 [code: missing-separator-glyphs]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • A (U+0041): Quad(QuadBez { p0: (450.0, 369.0), p1: (446.0, 457.0), p2: (442.0, 637.0) })/Quad(QuadBez { p0: (442.0, 637.0), p1: (434.0, 591.0), p2: (417.5, 499.0) }) = 11.138836963141133
  • uniFF21 (U+FF21): Quad(QuadBez { p0: (664.0, 369.0), p1: (660.0, 457.0), p2: (656.0, 637.0) })/Quad(QuadBez { p0: (656.0, 637.0), p1: (648.0, 591.0), p2: (631.5, 499.0) }) = 11.138836963141133
  • uni4E95 (U+4E95): Quad(QuadBez { p0: (517.0, 206.0), p1: (514.0, 352.0), p2: (515.0, 346.0) })/Line(Line { p0: (515.0, 346.0), p1: (515.0, 350.0) }) = 9.462322208025613
  • uni503A (U+503A): Line(Line { p0: (504.0, 115.0), p1: (498.0, 102.0) })/Line(Line { p0: (498.0, 102.0), p1: (505.0, 112.0) }) = 10.216879629726717
  • uni56FA (U+56FA): Line(Line { p0: (589.0, 60.0), p1: (571.0, 59.0) })/Line(Line { p0: (571.0, 59.0), p1: (591.0, 56.0) }) = 11.710595729812393
  • uni572E (U+572E): Line(Line { p0: (379.0, 392.0), p1: (395.0, 405.0) })/Quad(QuadBez { p0: (395.0, 405.0), p1: (394.0, 404.0), p2: (388.0, 396.0) }) = 5.906141113770558
  • uni5815 (U+5815): Line(Line { p0: (677.0, 357.0), p1: (675.0, 379.0) })/Quad(QuadBez { p0: (675.0, 379.0), p1: (673.0, 365.0), p2: (662.0, 357.5) }) = 13.32453126189081
  • uni594B (U+594B): Quad(QuadBez { p0: (374.0, 270.0), p1: (376.0, 321.0), p2: (394.0, 325.0) })/Line(Line { p0: (394.0, 325.0), p1: (382.0, 325.0) }) = 12.528807709151492
  • uni5983 (U+5983): Line(Line { p0: (928.0, 199.0), p1: (933.0, 220.0) })/Line(Line { p0: (933.0, 220.0), p1: (933.0, 203.0) }) = 13.39249775375107
    ... and 34 others [code: found-jaggy-segments]
⚠️ WARN Check there are no overlapping path segments (overlapping_path_segments)
  • ⚠️ WARN The following glyphs have overlapping path segments:
  • a (U+0061): Quad(QuadBez { p0: (86.0, 160.0), p1: (187.0, 247.0), p2: (246.0, 423.0) }) has the same coordinates as a previous segment.
  • k (U+006B): Quad(QuadBez { p0: (147.0, 323.0), p1: (206.0, 341.0), p2: (256.0, 407.0) }) has the same coordinates as a previous segment.
  • uniFF41 (U+FF41): Quad(QuadBez { p0: (370.0, 160.0), p1: (471.0, 247.0), p2: (530.0, 423.0) }) has the same coordinates as a previous segment.
  • uniFF4B (U+FF4B): Quad(QuadBez { p0: (472.0, 323.0), p1: (531.0, 341.0), p2: (581.0, 407.0) }) has the same coordinates as a previous segment.
  • uniFF20 (U+FF20): Quad(QuadBez { p0: (428.0, 308.0), p1: (505.0, 375.0), p2: (550.0, 508.0) }) has the same coordinates as a previous segment.
  • at (U+0040): Quad(QuadBez { p0: (228.0, 308.0), p1: (305.0, 375.0), p2: (350.0, 508.0) }) has the same coordinates as a previous segment. [code: overlapping-path-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • J (U+004A): Line(Line { p0: (344.0, 770.0), p1: (461.0, 771.0) })
  • uniFF2A (U+FF2A): Line(Line { p0: (611.0, 770.0), p1: (728.0, 771.0) })
  • uni4E18 (U+4E18): Line(Line { p0: (424.0, 197.0), p1: (425.0, 71.0) })
  • uni4E3E (U+4E3E): Line(Line { p0: (400.0, -83.0), p1: (399.0, 51.0) })
  • uni4E4E (U+4E4E): Line(Line { p0: (454.0, 211.0), p1: (455.0, 355.0) })
  • uni4EAB (U+4EAB): Line(Line { p0: (686.0, 267.0), p1: (813.0, 268.0) })
  • uni4EC0 (U+4EC0): Line(Line { p0: (581.0, 507.0), p1: (582.0, 638.0) })
  • uni4EE3 (U+4EE3): Line(Line { p0: (516.0, 487.0), p1: (515.0, 606.0) })
  • uni4EF0 (U+4EF0): Line(Line { p0: (653.0, 277.0), p1: (654.0, 534.0) })
    ... and 182 others [code: found-semi-vertical]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. (googlefonts/meta/script_lang_tags)
  • ⚠️ WARN This font file does not have a 'meta' table. [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. (googlefonts/vendor_id)
  • ⚠️ WARN OS/2 VendorID value 'ZYEC' is not yet recognized.
    If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
ℹ️ INFO Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Ma Shan Zheng" seems to be already in use.
    Please visit http://namecheck.fontdata.com/ for more info. [code: name-collision]
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
MaShanZheng-Regular.ttf
Dehinted Size 5858024
Hinted Size 5858048
Increase 24
Change 0.0 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? (googlefonts/gasp)
  • ℹ️ INFO These are the ppm ranges declared on the gasp table:

| PPM <= 65535 | - Use grid-fitting |
| | - Use grayscale rendering |
| | - Use gridfitting with ClearType symmetric smoothing |

- Use smoothing along multiple axes with ClearType®
[code: ranges]
ℹ️ INFO Font has old ttfautohint applied? (googlefonts/old_ttfautohint)
  • ℹ️ 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 2.002 [code: version-not-detected]
[2] ofl/mashanzheng/METADATA.pb
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? (googlefonts/metadata/designer_profiles)
  • ⚠️ WARN It seems that mashanzheng 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]
ℹ️ INFO Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]
[1] ofl/mashanzheng/DESCRIPTION.en_us.html
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo URL? (googlefonts/description/git_url)
  • 🔥 FAIL Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file. [code: lacks-git-url]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
2 17 8 116 65
1% 8% 4% 57% 32%

@github-actions
Copy link
Contributor

FontSpector report

fontspector version: 1.5.2

Check results

[7] ofl/mashanzheng
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. (googlefonts/metadata/consistent_repo_urls)
🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/mashanzheng/MaShanZheng-Regular.ttf missing required codepoints:
  • 0x00AE: REGISTERED SIGN
  • 0x00B7: MIDDLE DOT [code: missing-codepoints]
⚠️ WARN METADATA.pb: Check for primary_script (googlefonts/metadata/primary_script)
  • ⚠️ WARN METADATA.pb: primary_script is 'Hans' but should be 'Hani'. [code: wrong-primary-script]
⚠️ WARN METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • ⚠️ WARN Please add 'japanese' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

  • ⚠️ WARN Please add 'chinese-traditional' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

  • ⚠️ WARN Please add 'chinese-hongkong' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/mashanzheng/MaShanZheng-Regular.ttf: 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+02C7 CARON: try adding one of: canadian-aboriginal, tifinagh, latin-ext, yi
  • U+2015 HORIZONTAL BAR: try adding adlam
  • U+2025 TWO DOT LEADER: try adding phags-pa
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+4E2C CJK UNIFIED IDEOGRAPH-4E2C: try adding chinese-hongkong
  • U+4EA0 CJK UNIFIED IDEOGRAPH-4EA0: try adding japanese
  • U+4EC2 CJK UNIFIED IDEOGRAPH-4EC2: try adding japanese
  • U+4F7E CJK UNIFIED IDEOGRAPH-4F7E: try adding one of: chinese-hongkong, chinese-traditional
  • U+5025 CJK UNIFIED IDEOGRAPH-5025: try adding japanese
    ... and 286 others

Or you can add the above codepoints to one of the subsets supported by the font: chinese-simplified, latin, menu [code: unreachable-subsetting]

ℹ️ INFO Check for presence of an ARTICLE.en_us.html file (googlefonts/description/has_article)
  • ℹ️ INFO This font doesn't have an ARTICLE.en_us.html file. [code: missing-article]
ℹ️ INFO Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[2] ofl/mashanzheng/DESCRIPTION.en_us.html
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak. (googlefonts/description/eof_linebreak)
  • ⚠️ WARN The last characther on DESCRIPTION.en_us.html is not a line-break. Please add it. [code: missing-eof-linebreak]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? (googlefonts/description/git_url)
[15] ofl/mashanzheng/MaShanZheng-Regular.ttf
⚠️ WARN Does the font contain chws and vchw features? (cjk_chws_feature)
⚠️ WARN Check if each glyph has the recommended amount of contours. (contour_count)
  • ⚠️ WARN This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are
    inferred from the typical amounts 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:

  • uniFF2F (U+FF2F): found 3, expected one of: {2, 6, 7}
  • uniFF33 (U+FF33): found 2, expected one of: {3, 1}
  • uniFF37 (U+FF37): found 2, expected one of: {13, 3, 1}
  • uni300E (U+300E): found 4, expected one of: {2}
  • uni300F (U+300F): found 4, expected one of: {2} [code: contour-count]
⚠️ WARN Ensure files are not too large. (file_size)
  • ⚠️ WARN Font file is 5.86 MB; ideally it should be less than 1.05 MB [code: large-font]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN The following separator glyphs are missing:
  • U+2028
  • U+2029 [code: missing-separator-glyphs]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • A (U+0041): Quad(QuadBez { p0: (450.0, 369.0), p1: (446.0, 457.0), p2: (442.0, 637.0) })/Quad(QuadBez { p0: (442.0, 637.0), p1: (434.0, 591.0), p2: (417.5, 499.0) }) = 11.138836963141133
  • uniFF21 (U+FF21): Quad(QuadBez { p0: (664.0, 369.0), p1: (660.0, 457.0), p2: (656.0, 637.0) })/Quad(QuadBez { p0: (656.0, 637.0), p1: (648.0, 591.0), p2: (631.5, 499.0) }) = 11.138836963141133
  • uni4E95 (U+4E95): Quad(QuadBez { p0: (517.0, 206.0), p1: (514.0, 352.0), p2: (515.0, 346.0) })/Line(Line { p0: (515.0, 346.0), p1: (515.0, 350.0) }) = 9.462322208025613
  • uni503A (U+503A): Line(Line { p0: (504.0, 115.0), p1: (498.0, 102.0) })/Line(Line { p0: (498.0, 102.0), p1: (505.0, 112.0) }) = 10.216879629726717
  • uni56FA (U+56FA): Line(Line { p0: (589.0, 60.0), p1: (571.0, 59.0) })/Line(Line { p0: (571.0, 59.0), p1: (591.0, 56.0) }) = 11.710595729812393
  • uni572E (U+572E): Line(Line { p0: (379.0, 392.0), p1: (395.0, 405.0) })/Quad(QuadBez { p0: (395.0, 405.0), p1: (394.0, 404.0), p2: (388.0, 396.0) }) = 5.906141113770558
  • uni5815 (U+5815): Line(Line { p0: (677.0, 357.0), p1: (675.0, 379.0) })/Quad(QuadBez { p0: (675.0, 379.0), p1: (673.0, 365.0), p2: (662.0, 357.5) }) = 13.32453126189081
  • uni594B (U+594B): Quad(QuadBez { p0: (374.0, 270.0), p1: (376.0, 321.0), p2: (394.0, 325.0) })/Line(Line { p0: (394.0, 325.0), p1: (382.0, 325.0) }) = 12.528807709151492
  • uni5983 (U+5983): Line(Line { p0: (928.0, 199.0), p1: (933.0, 220.0) })/Line(Line { p0: (933.0, 220.0), p1: (933.0, 203.0) }) = 13.39249775375107
    ... and 34 others [code: found-jaggy-segments]
⚠️ WARN Check there are no overlapping path segments (overlapping_path_segments)
  • ⚠️ WARN The following glyphs have overlapping path segments:
  • a (U+0061): Quad(QuadBez { p0: (86.0, 160.0), p1: (187.0, 247.0), p2: (246.0, 423.0) }) has the same coordinates as a previous segment.
  • k (U+006B): Quad(QuadBez { p0: (147.0, 323.0), p1: (206.0, 341.0), p2: (256.0, 407.0) }) has the same coordinates as a previous segment.
  • uniFF41 (U+FF41): Quad(QuadBez { p0: (370.0, 160.0), p1: (471.0, 247.0), p2: (530.0, 423.0) }) has the same coordinates as a previous segment.
  • uniFF4B (U+FF4B): Quad(QuadBez { p0: (472.0, 323.0), p1: (531.0, 341.0), p2: (581.0, 407.0) }) has the same coordinates as a previous segment.
  • uniFF20 (U+FF20): Quad(QuadBez { p0: (428.0, 308.0), p1: (505.0, 375.0), p2: (550.0, 508.0) }) has the same coordinates as a previous segment.
  • at (U+0040): Quad(QuadBez { p0: (228.0, 308.0), p1: (305.0, 375.0), p2: (350.0, 508.0) }) has the same coordinates as a previous segment. [code: overlapping-path-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • J (U+004A): Line(Line { p0: (344.0, 770.0), p1: (461.0, 771.0) })
  • uniFF2A (U+FF2A): Line(Line { p0: (611.0, 770.0), p1: (728.0, 771.0) })
  • uni4E18 (U+4E18): Line(Line { p0: (424.0, 197.0), p1: (425.0, 71.0) })
  • uni4E3E (U+4E3E): Line(Line { p0: (400.0, -83.0), p1: (399.0, 51.0) })
  • uni4E4E (U+4E4E): Line(Line { p0: (454.0, 211.0), p1: (455.0, 355.0) })
  • uni4EAB (U+4EAB): Line(Line { p0: (686.0, 267.0), p1: (813.0, 268.0) })
  • uni4EC0 (U+4EC0): Line(Line { p0: (581.0, 507.0), p1: (582.0, 638.0) })
  • uni4EE3 (U+4EE3): Line(Line { p0: (516.0, 487.0), p1: (515.0, 606.0) })
  • uni4EF0 (U+4EF0): Line(Line { p0: (653.0, 277.0), p1: (654.0, 534.0) })
    ... and 182 others [code: found-semi-vertical]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. (googlefonts/meta/script_lang_tags)
  • ⚠️ WARN This font file does not have a 'meta' table. [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. (googlefonts/vendor_id)
  • ⚠️ WARN OS/2 VendorID value 'ZYEC' is not yet recognized.
    If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
ℹ️ INFO Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Ma Shan Zheng" seems to be already in use.
    Please visit http://namecheck.fontdata.com/ for more info. [code: name-collision]
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
MaShanZheng-Regular.ttf
Dehinted Size 5858024
Hinted Size 5858048
Increase 24
Change 0.0 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? (googlefonts/gasp)
  • ℹ️ INFO These are the ppm ranges declared on the gasp table:

| PPM <= 65535 | - Use grid-fitting |
| | - Use grayscale rendering |
| | - Use gridfitting with ClearType symmetric smoothing |

- Use smoothing along multiple axes with ClearType®
[code: ranges]
ℹ️ INFO Font has old ttfautohint applied? (googlefonts/old_ttfautohint)
  • ℹ️ 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 2.002 [code: version-not-detected]
[2] ofl/mashanzheng/METADATA.pb
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? (googlefonts/metadata/designer_profiles)
  • ⚠️ WARN It seems that mashanzheng 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]
ℹ️ INFO Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
2 18 9 114 65
1% 9% 4% 56% 32%

@github-actions
Copy link
Contributor

FontSpector report

fontspector version: 1.5.2

Checks with FATAL results

These must be addressed first.

[1] ofl/mashanzheng/MaShanZheng-Regular.ttf
💥 ERROR Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)

All other checks

[7] ofl/mashanzheng
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. (googlefonts/metadata/consistent_repo_urls)
🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/mashanzheng/MaShanZheng-Regular.ttf missing required codepoints:
  • 0x00AE: REGISTERED SIGN
  • 0x00B7: MIDDLE DOT [code: missing-codepoints]
⚠️ WARN METADATA.pb: Check for primary_script (googlefonts/metadata/primary_script)
  • ⚠️ WARN METADATA.pb: primary_script is 'Hans' but should be 'Hani'. [code: wrong-primary-script]
⚠️ WARN METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • ⚠️ WARN Please add 'chinese-traditional' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

  • ⚠️ WARN Please add 'japanese' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

  • ⚠️ WARN Please add 'chinese-hongkong' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/mashanzheng/MaShanZheng-Regular.ttf: 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+02C7 CARON: try adding one of: latin-ext, yi, tifinagh, canadian-aboriginal
  • U+2015 HORIZONTAL BAR: try adding adlam
  • U+2025 TWO DOT LEADER: try adding phags-pa
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+4E2C CJK UNIFIED IDEOGRAPH-4E2C: try adding chinese-hongkong
  • U+4EA0 CJK UNIFIED IDEOGRAPH-4EA0: try adding japanese
  • U+4EC2 CJK UNIFIED IDEOGRAPH-4EC2: try adding japanese
  • U+4F7E CJK UNIFIED IDEOGRAPH-4F7E: try adding one of: chinese-traditional, chinese-hongkong
  • U+5025 CJK UNIFIED IDEOGRAPH-5025: try adding japanese
    ... and 286 others

Or you can add the above codepoints to one of the subsets supported by the font: chinese-simplified, latin, menu [code: unreachable-subsetting]

ℹ️ INFO Check for presence of an ARTICLE.en_us.html file (googlefonts/description/has_article)
  • ℹ️ INFO This font doesn't have an ARTICLE.en_us.html file. [code: missing-article]
ℹ️ INFO Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[2] ofl/mashanzheng/METADATA.pb
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? (googlefonts/metadata/designer_profiles)
  • ⚠️ WARN It seems that mashanzheng 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]
ℹ️ INFO Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]
[14] ofl/mashanzheng/MaShanZheng-Regular.ttf
⚠️ WARN Does the font contain chws and vchw features? (cjk_chws_feature)
⚠️ WARN Check if each glyph has the recommended amount of contours. (contour_count)
  • ⚠️ WARN This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are
    inferred from the typical amounts 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:

  • uniFF2F (U+FF2F): found 3, expected one of: {6, 7, 2}
  • uniFF33 (U+FF33): found 2, expected one of: {1, 3}
  • uniFF37 (U+FF37): found 2, expected one of: {3, 1, 13}
  • uni300E (U+300E): found 4, expected one of: {2}
  • uni300F (U+300F): found 4, expected one of: {2} [code: contour-count]
⚠️ WARN Ensure files are not too large. (file_size)
  • ⚠️ WARN Font file is 5.86 MB; ideally it should be less than 1.05 MB [code: large-font]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN The following separator glyphs are missing:
  • U+2028
  • U+2029 [code: missing-separator-glyphs]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • A (U+0041): Quad(QuadBez { p0: (450.0, 369.0), p1: (446.0, 457.0), p2: (442.0, 637.0) })/Quad(QuadBez { p0: (442.0, 637.0), p1: (434.0, 591.0), p2: (417.5, 499.0) }) = 11.138836963141133
  • uniFF21 (U+FF21): Quad(QuadBez { p0: (664.0, 369.0), p1: (660.0, 457.0), p2: (656.0, 637.0) })/Quad(QuadBez { p0: (656.0, 637.0), p1: (648.0, 591.0), p2: (631.5, 499.0) }) = 11.138836963141133
  • uni4E95 (U+4E95): Quad(QuadBez { p0: (517.0, 206.0), p1: (514.0, 352.0), p2: (515.0, 346.0) })/Line(Line { p0: (515.0, 346.0), p1: (515.0, 350.0) }) = 9.462322208025613
  • uni503A (U+503A): Line(Line { p0: (504.0, 115.0), p1: (498.0, 102.0) })/Line(Line { p0: (498.0, 102.0), p1: (505.0, 112.0) }) = 10.216879629726717
  • uni56FA (U+56FA): Line(Line { p0: (589.0, 60.0), p1: (571.0, 59.0) })/Line(Line { p0: (571.0, 59.0), p1: (591.0, 56.0) }) = 11.710595729812393
  • uni572E (U+572E): Line(Line { p0: (379.0, 392.0), p1: (395.0, 405.0) })/Quad(QuadBez { p0: (395.0, 405.0), p1: (394.0, 404.0), p2: (388.0, 396.0) }) = 5.906141113770558
  • uni5815 (U+5815): Line(Line { p0: (677.0, 357.0), p1: (675.0, 379.0) })/Quad(QuadBez { p0: (675.0, 379.0), p1: (673.0, 365.0), p2: (662.0, 357.5) }) = 13.32453126189081
  • uni594B (U+594B): Quad(QuadBez { p0: (374.0, 270.0), p1: (376.0, 321.0), p2: (394.0, 325.0) })/Line(Line { p0: (394.0, 325.0), p1: (382.0, 325.0) }) = 12.528807709151492
  • uni5983 (U+5983): Line(Line { p0: (928.0, 199.0), p1: (933.0, 220.0) })/Line(Line { p0: (933.0, 220.0), p1: (933.0, 203.0) }) = 13.39249775375107
    ... and 34 others [code: found-jaggy-segments]
⚠️ WARN Check there are no overlapping path segments (overlapping_path_segments)
  • ⚠️ WARN The following glyphs have overlapping path segments:
  • a (U+0061): Quad(QuadBez { p0: (86.0, 160.0), p1: (187.0, 247.0), p2: (246.0, 423.0) }) has the same coordinates as a previous segment.
  • k (U+006B): Quad(QuadBez { p0: (147.0, 323.0), p1: (206.0, 341.0), p2: (256.0, 407.0) }) has the same coordinates as a previous segment.
  • uniFF41 (U+FF41): Quad(QuadBez { p0: (370.0, 160.0), p1: (471.0, 247.0), p2: (530.0, 423.0) }) has the same coordinates as a previous segment.
  • uniFF4B (U+FF4B): Quad(QuadBez { p0: (472.0, 323.0), p1: (531.0, 341.0), p2: (581.0, 407.0) }) has the same coordinates as a previous segment.
  • uniFF20 (U+FF20): Quad(QuadBez { p0: (428.0, 308.0), p1: (505.0, 375.0), p2: (550.0, 508.0) }) has the same coordinates as a previous segment.
  • at (U+0040): Quad(QuadBez { p0: (228.0, 308.0), p1: (305.0, 375.0), p2: (350.0, 508.0) }) has the same coordinates as a previous segment. [code: overlapping-path-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • J (U+004A): Line(Line { p0: (344.0, 770.0), p1: (461.0, 771.0) })
  • uniFF2A (U+FF2A): Line(Line { p0: (611.0, 770.0), p1: (728.0, 771.0) })
  • uni4E18 (U+4E18): Line(Line { p0: (424.0, 197.0), p1: (425.0, 71.0) })
  • uni4E3E (U+4E3E): Line(Line { p0: (400.0, -83.0), p1: (399.0, 51.0) })
  • uni4E4E (U+4E4E): Line(Line { p0: (454.0, 211.0), p1: (455.0, 355.0) })
  • uni4EAB (U+4EAB): Line(Line { p0: (686.0, 267.0), p1: (813.0, 268.0) })
  • uni4EC0 (U+4EC0): Line(Line { p0: (581.0, 507.0), p1: (582.0, 638.0) })
  • uni4EE3 (U+4EE3): Line(Line { p0: (516.0, 487.0), p1: (515.0, 606.0) })
  • uni4EF0 (U+4EF0): Line(Line { p0: (653.0, 277.0), p1: (654.0, 534.0) })
    ... and 182 others [code: found-semi-vertical]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. (googlefonts/meta/script_lang_tags)
  • ⚠️ WARN This font file does not have a 'meta' table. [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. (googlefonts/vendor_id)
  • ⚠️ WARN OS/2 VendorID value 'ZYEC' is not yet recognized.
    If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
MaShanZheng-Regular.ttf
Dehinted Size 5858024
Hinted Size 5858048
Increase 24
Change 0.0 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? (googlefonts/gasp)
  • ℹ️ INFO These are the ppm ranges declared on the gasp table:

| PPM <= 65535 | - Use grid-fitting |
| | - Use grayscale rendering |
| | - Use gridfitting with ClearType symmetric smoothing |

- Use smoothing along multiple axes with ClearType®
[code: ranges]
ℹ️ INFO Font has old ttfautohint applied? (googlefonts/old_ttfautohint)
  • ℹ️ 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 2.002 [code: version-not-detected]
[1] ofl/mashanzheng/DESCRIPTION.en_us.html
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? (googlefonts/description/git_url)

Summary

💥 ERROR 🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
1 2 17 8 115 65
0% 1% 8% 4% 56% 32%

@emmamarichal emmamarichal merged commit 3d14f65 into main Jan 29, 2026
5 of 7 checks passed
@emmamarichal emmamarichal deleted the mashanzheng branch January 29, 2026 13:54
@github-project-automation github-project-automation bot moved this from PR GF to PR Merged in Fonts Traffic Jam Jan 29, 2026
@emmamarichal emmamarichal added the II CJK Chinese, Japanese, Korean scripts label Jan 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

I Font Upgrade II CJK Chinese, Japanese, Korean scripts

Projects

Status: PR Merged

Development

Successfully merging this pull request may close these issues.

[Ma Shan Zheng] Glyph mismatch for U+4E95 (井)

2 participants