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

[Nanum Myeongjo] Hotfixed fonts to add a space character #8692

Merged
merged 2 commits into from
Dec 11, 2024

Conversation

simoncozens
Copy link
Collaborator

As per #8416 (comment), Nanum Myeongjo is showing tofu on the Google Fonts front end because it has no space character. In normal usage, this is fine because the .notdef character is blank, so that can be used as a space. But on the frontend, we use a fancy notdef fallback font to explicitly show tofu, so the ".notdef as space" trick doesn't work.

The solution is to add an explicit space glyph. We don't have the sources for this font, so we hotfix it with some FontTools hackery. Hotfix script added in case we need to do this again with updated font binaries.

Copy link

github-actions bot commented Dec 5, 2024

FontBakery report

fontbakery version: 0.13.0a6

Check results

[3] Family checks
🔥 FAIL Fonts have equal codepoint coverage
  • 🔥 FAIL
  • ExtraBold contains encoded codepoints not found in other related fonts: - U+3231

    • U+3239
[code: glyphset-diverges]
⚠️ WARN Fonts have consistent PANOSE family type?
  • ⚠️ WARN

    PANOSE family type is not the same across this family. In order to fix this, please make sure that the panose.bFamilyType value is the same in the OS/2 table of all of this family font files.

The following PANOSE family types were found:

- 2: NanumMyeongjo-ExtraBold.ttf
  • 0: NanumMyeongjo-Bold.ttf and NanumMyeongjo-Regular.ttf

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

    All of the fonts lack a STAT table.


    [code: summary]
[44] NanumMyeongjo-ExtraBold.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs.
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+0111: LATIN SMALL LETTER D WITH STROKE U+0110: LATIN CAPITAL LETTER D WITH STROKE
[code: missing-case-counterparts]
🔥 FAIL Checking Vertical Metric Linegaps.
  • 🔥 FAIL

    hhea lineGap is not equal to 0.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, all messages from this check are considered FAILs.

[code: hhea]
🔥 FAIL Font contains '.notdef' as its first glyph?
  • 🔥 FAIL

    The '.notdef' glyph should contain a drawing, but it is blank.


    [code: notdef-is-blank]
🔥 FAIL Ensure smart dropout control is enabled in "prep" table instructions.
  • 🔥 FAIL

    The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script.


    [code: lacks-smart-dropout]
🔥 FAIL Font contains unique glyph names?
  • 🔥 FAIL

    These glyph names occur more than once: ['.notdef']


    [code: duplicated-glyph-names]
🔥 FAIL Are there unwanted tables?
  • 🔥 FAIL

    The following unwanted font tables were found:

  • DSIG - This font has a digital signature (DSIG table) which is only required - even if only a placeholder - on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table.

They can be removed with the 'fix-unwanted-tables' script provided by gftools.

[code: unwanted-tables]
🔥 FAIL Font contains glyphs for whitespace characters?
  • 🔥 FAIL

    Whitespace glyph missing for codepoint 0x00A0.


    [code: missing-whitespace-glyph-0x00A0]
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • 🔥 FAIL

    Please add a family.source.repository_url entry.


    [code: lacks-repo-url]
🔥 FAIL METADATA.pb font.filename and font.post_script_name fields have equivalent values?
  • 🔥 FAIL

    METADATA.pb font filename = "NanumMyeongjo-ExtraBold.ttf" does not match post_script_name="NanumMyeongjoExtraBold".


    [code: mismatch]
🔥 FAIL METADATA.pb weight matches postScriptName for static fonts.
  • 🔥 FAIL

    METADATA.pb: Mismatch between postScriptName ("NanumMyeongjoExtraBold") and weight value (800). The name must be ended with "ExtraBold" or "ExtraBoldItalic".

🔥 FAIL METADATA.pb font.name and font.full_name fields match the values declared on the name table?
  • 🔥 FAIL

    METADATA.pb: Fullname "NanumMyeongjoExtraBold" does not match name table entry "NanumMyeongjo ExtraBold"!


    [code: fullname-mismatch]
🔥 FAIL METADATA.pb font.name value should be same as the family name declared on the name table.
  • 🔥 FAIL

    Unmatched familyname in font: TTF has familyname = "NanumMyeongjo" while METADATA.pb has font.name = "Nanum Myeongjo".


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

    No GF glyphset was found to be supported >80%, so language shaping support couldn't get checked.


    [code: no-glyphset-supported]
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo 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]
🔥 FAIL Check family name for GF Guide compliance.
  • 🔥 FAIL

    "NanumMyeongjo" is a CamelCased name. To solve this, simply use spaces instead in the font name.


    [code: camelcase]
🔥 FAIL Copyright notices match canonical pattern in fonts
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string.
  • 🔥 FAIL

    First line in license file is:

"copyright (c) 2010, nhn corporation (http://www.nhncorp.com),"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Check copyright namerecords match license file.
  • 🔥 FAIL

    License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 1 (MACINTOSH) is not specified for that. Value was: "NHN Corporation" Must be changed to "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://openfontlicense.org"


    [code: wrong]

  • 🔥 FAIL

    License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 3 (WINDOWS) is not specified for that. Value was: "NHN Corporation" Must be changed to "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://openfontlicense.org"


    [code: wrong]

🔥 FAIL Check font names are correct
  • 🔥 FAIL

    Font names are incorrect:

nameID current expected
Family Name NanumMyeongjoExtraBold NanumMyeongjo ExtraBold
Subfamily Name Regular Regular
Full Name NanumMyeongjoExtraBold NanumMyeongjo ExtraBold
Postscript Name NanumMyeongjoExtraBold NanumMyeongjo-ExtraBold
Typographic Family Name NanumMyeongjo NanumMyeongjo
Typographic Subfamily Name ExtraBold ExtraBold
[code: bad-names]
🔥 FAIL Check Google Fonts glyph coverage.
  • 🔥 FAIL

    Missing required codepoints:

- 0x00A0 (NO-BREAK SPACE)


- 0x2212 (MINUS SIGN)

[code: missing-codepoints]

⚠️ 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: .notdef#11640	Contours detected: 1	Expected: 0
  • Glyph name: .notdef#30 Contours detected: 4 Expected: 3

  • Glyph name: .notdef#31 Contours detected: 4 Expected: 3

  • Glyph name: .notdef#32 Contours detected: 4 Expected: 3

  • Glyph name: .notdef#33 Contours detected: 4 Expected: 3


[code: contour-count]

⚠️ WARN Ensure files are not too large.
  • ⚠️ WARN

    Font file is 3.0Mb; ideally it should be less than 1.0Mb


    [code: large-font]
⚠️ WARN Check math signs have the same width.
  • ⚠️ WARN

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

Width = 654: logicalnot, equal, plus

Width = 561: greater, less

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

    The following glyphs have overlapping path segments:

* .notdef#1329 (U+AFC0): B<<354.0,-28.0>-<354.0,-27.0>-<353.0,-26.0>> has the same coordinates as a previous segment.

* .notdef#1553 (U+B0A0): B<<377.0,-32.0>-<377.0,-31.0>-<376.0,-30.0>> has the same coordinates as a previous segment.

* .notdef#3758 (U+B93D): L<<451.0,311.0>--<451.0,309.0>> has the same coordinates as a previous segment.

* .notdef#6904 (U+C587): L<<670.0,321.0>--<669.0,321.0>> has the same coordinates as a previous segment.

[code: overlapping-path-segments]

⚠️ WARN Does the font contain a soft hyphen?
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


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

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

- idotless

[code: unreachable-glyphs]

⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
  • ⚠️ WARN

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


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

    It seems that Sandoll Communication 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+0111 LATIN SMALL LETTER D WITH STROKE: try adding one of: vietnamese, latin-ext
  • U+0126 LATIN CAPITAL LETTER H WITH STROKE: try adding latin-ext
  • U+0127 LATIN SMALL LETTER H WITH STROKE: try adding latin-ext
  • U+0132 LATIN CAPITAL LIGATURE IJ: try adding latin-ext
  • U+0133 LATIN SMALL LIGATURE IJ: try adding latin-ext
  • U+0138 LATIN SMALL LETTER KRA: try adding latin-ext
  • U+013F LATIN CAPITAL LETTER L WITH MIDDLE DOT: try adding latin-ext
  • U+0140 LATIN SMALL LETTER L WITH MIDDLE DOT: try adding latin-ext
  • U+0141 LATIN CAPITAL LETTER L WITH STROKE: try adding latin-ext
  • U+0142 LATIN SMALL LETTER L WITH STROKE: try adding latin-ext 398 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: korean, latin, menu

[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 Check OFL body text is correct.

Lines changed:

+ with Reserved Font Name Nanum, Naver Nanum, NanumGothic, Naver NanumGothic, NanumMyeongjo,\n

+ Naver NanumMyeongjo, NanumBrush, Naver NanumBrush, NanumPen, Naver NanumPen\n

+ \n

- This license is copied below, and is also available with a FAQ at:\n

+ This license is copied below, and is also available with a FAQ at: https://openfontlicense.org\n

- https://openfontlicense.org\n

+ \n

+ SIL OPEN FONT LICENSE\n

+ Version 1.1 - 26 February 2007\n

+ \n

+ PREAMBLE\n

+ The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects,\n

+ to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework\n

+ in which fonts may be shared and improved in partnership with others.\n

+ \n

+ The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold\n

+ by themselves.\n

+ The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided\n

+ that any reserved names are not used by derivative works.\n

+ The fonts and derivatives, however, cannot be released under any other type of license.\n

+ The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.\n

- -----------------------------------------------------------\n

- SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007\n

- -----------------------------------------------------------\n

- \n

- PREAMBLE\n

- The goals of the Open Font License (OFL) are to stimulate worldwide\n

- development of collaborative font projects, to support the font creation\n

- efforts of academic and linguistic communities, and to provide a free and\n

- open framework in which fonts may be shared and improved in partnership\n

- with others.\n

- \n

- The OFL allows the licensed fonts to be used, studied, modified and\n

- redistributed freely as long as they are not sold by themselves. The\n

- fonts, including any derivative works, can be bundled, embedded,\n

- redistributed and/or sold with any software provided that any reserved\n

- names are not used by derivative works. The fonts and derivatives,\n

- however, cannot be released under any other type of license. The\n

- requirement for fonts to remain under this license does not apply\n

- to any document created using the fonts or their derivatives.\n

+ "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such.\n

- "Font Software" refers to the set of files released by the Copyright\n

- Holder(s) under this license and clearly marked as such. This may\n

- include source files, build scripts and documentation.\n

+ This may include source files, build scripts and documentation.\n

- "Reserved Font Name" refers to any names specified as such after the\n

+ "Reserved Font Name" refers to any names specified as such after the copyright statement(s).\n

- copyright statement(s).\n

- "Original Version" refers to the collection of Font Software components as\n

+ "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).\n

- distributed by the Copyright Holder(s).\n

- "Modified Version" refers to any derivative made by adding to, deleting,\n

+ "Modified Version" refers to any derivative made by adding to, deleting, or substituting ? in part or in whole ?\n

- or substituting -- in part or in whole -- any of the components of the\n

- Original Version, by changing formats or by porting the Font Software to a\n

+ any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.\n

- new environment.\n

- "Author" refers to any designer, engineer, programmer, technical\n

- writer or other person who contributed to the Font Software.\n

+ "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.\n

+ \n

+ Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge,\n

+ embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:\n

- Permission is hereby granted, free of charge, to any person obtaining\n

- a copy of the Font Software, to use, study, copy, merge, embed, modify,\n

- redistribute, and sell modified and unmodified copies of the Font\n

- Software, subject to the following conditions:\n

- 1) Neither the Font Software nor any of its individual components,\n

+ 1) Neither the Font Software nor any of its individual components,in Original or Modified Versions,\n

- in Original or Modified Versions, may be sold by itself.\n

+ may be sold by itself.\n

- 2) Original or Modified Versions of the Font Software may be bundled,\n

+ 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software,\n

+ provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files,\n

+ human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields\n

+ can be easily viewed by the user.\n

- redistributed and/or sold with any software, provided that each copy\n

- contains the above copyright notice and this license. These can be\n

- included either as stand-alone text files, human-readable headers or\n

- in the appropriate machine-readable metadata fields within text or\n

- binary files as long as those fields can be easily viewed by the user.\n

- 3) No Modified Version of the Font Software may use the Reserved Font\n

+ 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written\n

+ permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented\n

+ to the users.\n

- Name(s) unless explicit written permission is granted by the corresponding\n

- Copyright Holder. This restriction only applies to the primary font name as\n

- presented to the users.\n

+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise\n

+ any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit\n

+ written permission.\n

- 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font\n

- Software shall not be used to promote, endorse or advertise any\n

- Modified Version, except to acknowledge the contribution(s) of the\n

- Copyright Holder(s) and the Author(s) or with their explicit written\n

- permission.\n

+ 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed\n

+ under any other license. The requirement for fonts to remain under this license does not apply to any document created using\n

- 5) The Font Software, modified or unmodified, in part or in whole,\n

- must be distributed entirely under this license, and must not be\n

- distributed under any other license. The requirement for fonts to\n

- remain under this license does not apply to any document created\n

- using the Font Software.\n

+ the Font Software.\n

+ \n

+ \n

- This license becomes null and void if any of the above conditions are\n

+ This license becomes null and void if any of the above conditions are not met.\n

- not met.\n

+ \n

+ \n

- THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\n

+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n

+ INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT.\n

- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\n

- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\n

- OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE\n

- COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n

+ IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n

+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE\n

- INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\n

- DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n

- FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM\n

- OTHER DEALINGS IN THE FONT SOFTWARE.

+ OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

[code: incorrect-ofl-body-text]
⚠️ WARN Check the direction of the outermost contour in each glyph
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* .notdef#11640 (U+00AD) has a counter-clockwise outer contour

* .notdef#24 (U+21BC) has a counter-clockwise outer contour

* .notdef#378 (U+AC09) has a counter-clockwise outer contour

* .notdef#378 (U+AC09) has a counter-clockwise outer contour

* .notdef#379 (U+AC0A) has a counter-clockwise outer contour

* .notdef#4 (U+2035) has a counter-clockwise outer contour

* .notdef#5 (U+2036) has a counter-clockwise outer contour

* .notdef#5 (U+2036) has a counter-clockwise outer contour

* backslash (U+005C) has a counter-clockwise outer contour

* brokenbar (U+00A6) has a counter-clockwise outer contour

* brokenbar (U+00A6) has a counter-clockwise outer contour

* logicalnot (U+00AC) has a counter-clockwise outer contour

[code: ccw-outer-contour]

⚠️ WARN Do outlines contain any jaggy segments?
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* .notdef#10006 (U+D1A5): B<<398.0,-79.0>-<409.0,-71.0>-<413.0,-69.0>>/B<<413.0,-69.0>-<407.0,-71.0>-<394.5,-74.0>> = 8.13010235415587

* .notdef#10034 (U+D1C1): B<<367.5,-80.0>-<377.0,-73.0>-<382.0,-70.0>>/B<<382.0,-70.0>-<376.0,-72.0>-<363.5,-75.5>> = 12.528807709151492

* .notdef#10043 (U+D1CA): L<<472.0,189.0>--<472.0,190.0>>/B<<472.0,190.0>-<471.0,186.0>-<466.5,169.0>> = 14.036243467926484

* .notdef#1005 (U+AE7C): B<<338.0,113.0>-<361.0,152.0>-<374.0,188.0>>/B<<374.0,188.0>-<373.0,186.0>-<374.0,197.0>> = 6.709836807756842

* .notdef#10118 (U+D215): B<<398.0,-79.0>-<409.0,-71.0>-<413.0,-69.0>>/B<<413.0,-69.0>-<407.0,-71.0>-<394.5,-74.0>> = 8.13010235415587

* .notdef#10146 (U+D231): B<<398.0,-79.0>-<409.0,-71.0>-<413.0,-69.0>>/B<<413.0,-69.0>-<407.0,-71.0>-<394.5,-74.0>> = 8.13010235415587

* .notdef#10174 (U+D24D): B<<409.0,-80.5>-<418.0,-73.0>-<423.0,-70.0>>/B<<423.0,-70.0>-<417.0,-72.0>-<404.5,-75.0>> = 12.528807709151492

* .notdef#1018 (U+AE89): B<<370.0,-80.5>-<381.0,-72.0>-<386.0,-69.0>>/B<<386.0,-69.0>-<380.0,-71.0>-<367.0,-74.5>> = 12.528807709151492

* .notdef#10230 (U+D285): B<<409.0,-80.5>-<418.0,-73.0>-<423.0,-70.0>>/B<<423.0,-70.0>-<417.0,-72.0>-<404.5,-75.0>> = 12.528807709151492

* .notdef#10233 (U+D288): L<<457.0,53.0>--<457.0,55.0>>/B<<457.0,55.0>-<456.0,48.0>-<456.0,43.0>> = 8.13010235415596

* 647 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:

* .notdef#10011 (U+D1AA): L<<616.0,191.0>--<617.0,6.0>>

* .notdef#10011 (U+D1AA): L<<698.0,-6.0>--<699.0,196.0>>

* .notdef#10030 (U+D1BD): L<<305.0,458.0>--<420.0,459.0>>

* .notdef#10031 (U+D1BE): L<<305.0,458.0>--<420.0,459.0>>

* .notdef#10032 (U+D1BF): L<<305.0,458.0>--<420.0,459.0>>

* .notdef#10034 (U+D1C1): L<<305.0,458.0>--<420.0,459.0>>

* .notdef#10035 (U+D1C2): L<<306.0,471.0>--<421.0,472.0>>

* .notdef#10036 (U+D1C3): L<<305.0,458.0>--<420.0,459.0>>

* .notdef#10037 (U+D1C4): L<<306.0,471.0>--<421.0,472.0>>

* .notdef#10038 (U+D1C5): L<<306.0,471.0>--<421.0,472.0>>

* 1933 more.

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

[code: found-semi-vertical]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table.
  • ⚠️ WARN

    This font file does not have a 'meta' table.


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths
  • ℹ️ INFO

    ofl/nanummyeongjo


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

    Hinting filesize impact:

ofl/nanummyeongjo/NanumMyeongjo-ExtraBold.ttf
Dehinted Size 2.0Mb
Hinted Size 3.0Mb
Increase 1.1Mb
Change 54.7 %
[code: size-impact]
ℹ️ INFO Font contains all required tables?
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[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 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 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 2.030;PS 1;hotconv 1.0.56;makeotf.lib2.0.21325', 'Version 2.030;PS 1;hotconv 1.0.56;makeotf.lib2.0.21325']


    [code: version-not-detected]
[43] NanumMyeongjo-Bold.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs.
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+0111: LATIN SMALL LETTER D WITH STROKE U+0110: LATIN CAPITAL LETTER D WITH STROKE
[code: missing-case-counterparts]
🔥 FAIL Checking Vertical Metric Linegaps.
  • 🔥 FAIL

    hhea lineGap is not equal to 0.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, all messages from this check are considered FAILs.

[code: hhea]
🔥 FAIL Font contains '.notdef' as its first glyph?
  • 🔥 FAIL

    The '.notdef' glyph should contain a drawing, but it is blank.


    [code: notdef-is-blank]
🔥 FAIL Ensure smart dropout control is enabled in "prep" table instructions.
  • 🔥 FAIL

    The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script.


    [code: lacks-smart-dropout]
🔥 FAIL Font contains unique glyph names?
  • 🔥 FAIL

    These glyph names occur more than once: ['.notdef']


    [code: duplicated-glyph-names]
🔥 FAIL Are there unwanted tables?
  • 🔥 FAIL

    The following unwanted font tables were found:

  • DSIG - This font has a digital signature (DSIG table) which is only required - even if only a placeholder - on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table.

They can be removed with the 'fix-unwanted-tables' script provided by gftools.

[code: unwanted-tables]
🔥 FAIL Font contains glyphs for whitespace characters?
  • 🔥 FAIL

    Whitespace glyph missing for codepoint 0x00A0.


    [code: missing-whitespace-glyph-0x00A0]
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • 🔥 FAIL

    Please add a family.source.repository_url entry.


    [code: lacks-repo-url]
🔥 FAIL METADATA.pb font.filename and font.post_script_name fields have equivalent values?
  • 🔥 FAIL

    METADATA.pb font filename = "NanumMyeongjo-Bold.ttf" does not match post_script_name="NanumMyeongjoBold".


    [code: mismatch]
🔥 FAIL METADATA.pb weight matches postScriptName for static fonts.
  • 🔥 FAIL

    METADATA.pb: Mismatch between postScriptName ("NanumMyeongjoBold") and weight value (700). The name must be ended with "Bold" or "BoldItalic".

🔥 FAIL METADATA.pb font.name and font.full_name fields match the values declared on the name table?
  • 🔥 FAIL

    METADATA.pb: Fullname "NanumMyeongjoBold" does not match name table entry "NanumMyeongjo Bold"!


    [code: fullname-mismatch]
🔥 FAIL METADATA.pb font.name value should be same as the family name declared on the name table.
  • 🔥 FAIL

    Unmatched familyname in font: TTF has familyname = "NanumMyeongjo" while METADATA.pb has font.name = "Nanum Myeongjo".


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

    No GF glyphset was found to be supported >80%, so language shaping support couldn't get checked.


    [code: no-glyphset-supported]
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo 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]
🔥 FAIL Check family name for GF Guide compliance.
  • 🔥 FAIL

    "NanumMyeongjo" is a CamelCased name. To solve this, simply use spaces instead in the font name.


    [code: camelcase]
🔥 FAIL Copyright notices match canonical pattern in fonts
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string.
  • 🔥 FAIL

    First line in license file is:

"copyright (c) 2010, nhn corporation (http://www.nhncorp.com),"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Check copyright namerecords match license file.
  • 🔥 FAIL

    License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 1 (MACINTOSH) is not specified for that. Value was: "NHN Corporation" Must be changed to "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://openfontlicense.org"


    [code: wrong]

  • 🔥 FAIL

    License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 3 (WINDOWS) is not specified for that. Value was: "NHN Corporation" Must be changed to "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://openfontlicense.org"


    [code: wrong]

🔥 FAIL Check font names are correct
  • 🔥 FAIL

    Font names are incorrect:

nameID current expected
Family Name NanumMyeongjo NanumMyeongjo
Subfamily Name Bold Bold
Full Name NanumMyeongjoBold NanumMyeongjo Bold
Postscript Name NanumMyeongjoBold NanumMyeongjo-Bold
Typographic Family Name NanumMyeongjo N/A
Typographic Subfamily Name Bold N/A
[code: bad-names]
🔥 FAIL Check Google Fonts glyph coverage.
  • 🔥 FAIL

    Missing required codepoints:

- 0x00A0 (NO-BREAK SPACE)


- 0x2212 (MINUS SIGN)

[code: missing-codepoints]

⚠️ 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: .notdef#11638	Contours detected: 1	Expected: 0
  • Glyph name: .notdef#30 Contours detected: 4 Expected: 3

  • Glyph name: .notdef#31 Contours detected: 4 Expected: 3

  • Glyph name: .notdef#32 Contours detected: 4 Expected: 3

  • Glyph name: .notdef#33 Contours detected: 4 Expected: 3


[code: contour-count]

⚠️ WARN Ensure files are not too large.
  • ⚠️ WARN

    Font file is 2.9Mb; ideally it should be less than 1.0Mb


    [code: large-font]
⚠️ WARN Check math signs have the same width.
  • ⚠️ WARN

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

Width = 654: logicalnot, equal, plus

Width = 561: greater, less

[code: width-outliers]
⚠️ WARN Does the font contain a soft hyphen?
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


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

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

- idotless

[code: unreachable-glyphs]

⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
  • ⚠️ WARN

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


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

    It seems that Sandoll Communication 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+0111 LATIN SMALL LETTER D WITH STROKE: try adding one of: vietnamese, latin-ext
  • U+0126 LATIN CAPITAL LETTER H WITH STROKE: try adding latin-ext
  • U+0127 LATIN SMALL LETTER H WITH STROKE: try adding latin-ext
  • U+0132 LATIN CAPITAL LIGATURE IJ: try adding latin-ext
  • U+0133 LATIN SMALL LIGATURE IJ: try adding latin-ext
  • U+0138 LATIN SMALL LETTER KRA: try adding latin-ext
  • U+013F LATIN CAPITAL LETTER L WITH MIDDLE DOT: try adding latin-ext
  • U+0140 LATIN SMALL LETTER L WITH MIDDLE DOT: try adding latin-ext
  • U+0141 LATIN CAPITAL LETTER L WITH STROKE: try adding latin-ext
  • U+0142 LATIN SMALL LETTER L WITH STROKE: try adding latin-ext 396 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: korean, latin, menu

[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 Check OFL body text is correct.

Lines changed:

+ with Reserved Font Name Nanum, Naver Nanum, NanumGothic, Naver NanumGothic, NanumMyeongjo,\n

+ Naver NanumMyeongjo, NanumBrush, Naver NanumBrush, NanumPen, Naver NanumPen\n

+ \n

- This license is copied below, and is also available with a FAQ at:\n

+ This license is copied below, and is also available with a FAQ at: https://openfontlicense.org\n

- https://openfontlicense.org\n

+ \n

+ SIL OPEN FONT LICENSE\n

+ Version 1.1 - 26 February 2007\n

+ \n

+ PREAMBLE\n

+ The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects,\n

+ to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework\n

+ in which fonts may be shared and improved in partnership with others.\n

+ \n

+ The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold\n

+ by themselves.\n

+ The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided\n

+ that any reserved names are not used by derivative works.\n

+ The fonts and derivatives, however, cannot be released under any other type of license.\n

+ The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.\n

- -----------------------------------------------------------\n

- SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007\n

- -----------------------------------------------------------\n

- \n

- PREAMBLE\n

- The goals of the Open Font License (OFL) are to stimulate worldwide\n

- development of collaborative font projects, to support the font creation\n

- efforts of academic and linguistic communities, and to provide a free and\n

- open framework in which fonts may be shared and improved in partnership\n

- with others.\n

- \n

- The OFL allows the licensed fonts to be used, studied, modified and\n

- redistributed freely as long as they are not sold by themselves. The\n

- fonts, including any derivative works, can be bundled, embedded,\n

- redistributed and/or sold with any software provided that any reserved\n

- names are not used by derivative works. The fonts and derivatives,\n

- however, cannot be released under any other type of license. The\n

- requirement for fonts to remain under this license does not apply\n

- to any document created using the fonts or their derivatives.\n

+ "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such.\n

- "Font Software" refers to the set of files released by the Copyright\n

- Holder(s) under this license and clearly marked as such. This may\n

- include source files, build scripts and documentation.\n

+ This may include source files, build scripts and documentation.\n

- "Reserved Font Name" refers to any names specified as such after the\n

+ "Reserved Font Name" refers to any names specified as such after the copyright statement(s).\n

- copyright statement(s).\n

- "Original Version" refers to the collection of Font Software components as\n

+ "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).\n

- distributed by the Copyright Holder(s).\n

- "Modified Version" refers to any derivative made by adding to, deleting,\n

+ "Modified Version" refers to any derivative made by adding to, deleting, or substituting ? in part or in whole ?\n

- or substituting -- in part or in whole -- any of the components of the\n

- Original Version, by changing formats or by porting the Font Software to a\n

+ any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.\n

- new environment.\n

- "Author" refers to any designer, engineer, programmer, technical\n

- writer or other person who contributed to the Font Software.\n

+ "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.\n

+ \n

+ Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge,\n

+ embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:\n

- Permission is hereby granted, free of charge, to any person obtaining\n

- a copy of the Font Software, to use, study, copy, merge, embed, modify,\n

- redistribute, and sell modified and unmodified copies of the Font\n

- Software, subject to the following conditions:\n

- 1) Neither the Font Software nor any of its individual components,\n

+ 1) Neither the Font Software nor any of its individual components,in Original or Modified Versions,\n

- in Original or Modified Versions, may be sold by itself.\n

+ may be sold by itself.\n

- 2) Original or Modified Versions of the Font Software may be bundled,\n

+ 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software,\n

+ provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files,\n

+ human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields\n

+ can be easily viewed by the user.\n

- redistributed and/or sold with any software, provided that each copy\n

- contains the above copyright notice and this license. These can be\n

- included either as stand-alone text files, human-readable headers or\n

- in the appropriate machine-readable metadata fields within text or\n

- binary files as long as those fields can be easily viewed by the user.\n

- 3) No Modified Version of the Font Software may use the Reserved Font\n

+ 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written\n

+ permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented\n

+ to the users.\n

- Name(s) unless explicit written permission is granted by the corresponding\n

- Copyright Holder. This restriction only applies to the primary font name as\n

- presented to the users.\n

+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise\n

+ any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit\n

+ written permission.\n

- 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font\n

- Software shall not be used to promote, endorse or advertise any\n

- Modified Version, except to acknowledge the contribution(s) of the\n

- Copyright Holder(s) and the Author(s) or with their explicit written\n

- permission.\n

+ 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed\n

+ under any other license. The requirement for fonts to remain under this license does not apply to any document created using\n

- 5) The Font Software, modified or unmodified, in part or in whole,\n

- must be distributed entirely under this license, and must not be\n

- distributed under any other license. The requirement for fonts to\n

- remain under this license does not apply to any document created\n

- using the Font Software.\n

+ the Font Software.\n

+ \n

+ \n

- This license becomes null and void if any of the above conditions are\n

+ This license becomes null and void if any of the above conditions are not met.\n

- not met.\n

+ \n

+ \n

- THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\n

+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n

+ INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT.\n

- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\n

- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\n

- OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE\n

- COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n

+ IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n

+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE\n

- INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\n

- DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n

- FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM\n

- OTHER DEALINGS IN THE FONT SOFTWARE.

+ OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

[code: incorrect-ofl-body-text]
⚠️ WARN Check the direction of the outermost contour in each glyph
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* .notdef#11638 (U+00AD) has a counter-clockwise outer contour

* .notdef#2 (U+201F) has a counter-clockwise outer contour

* .notdef#2 (U+201F) has a counter-clockwise outer contour

* .notdef#52 (U+2253) has a counter-clockwise outer contour

* .notdef#52 (U+2253) has a counter-clockwise outer contour

* .notdef#52 (U+2253) has a counter-clockwise outer contour

* .notdef#52 (U+2253) has a counter-clockwise outer contour

* backslash (U+005C) has a counter-clockwise outer contour

* brokenbar (U+00A6) has a counter-clockwise outer contour

* brokenbar (U+00A6) has a counter-clockwise outer contour

* logicalnot (U+00AC) has a counter-clockwise outer contour

* quotereversed (U+201B) has a counter-clockwise outer contour

[code: ccw-outer-contour]

⚠️ WARN Do outlines contain any jaggy segments?
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* .notdef#12 (U+207E): B<<53.5,370.0>-<33.0,353.0>-<25.0,358.0>>/L<<25.0,358.0>--<26.0,357.0>> = 12.994616791916483

* .notdef#1377 (U+AFF2): L<<356.0,650.0>--<356.0,651.0>>/B<<356.0,651.0>-<351.0,620.0>-<345.5,593.0>> = 9.162347045721706

* .notdef#1378 (U+AFF3): L<<356.0,650.0>--<356.0,651.0>>/B<<356.0,651.0>-<351.0,620.0>-<345.5,593.0>> = 9.162347045721706

* .notdef#1380 (U+AFF5): L<<356.0,650.0>--<356.0,651.0>>/B<<356.0,651.0>-<351.0,620.0>-<345.5,593.0>> = 9.162347045721706

* .notdef#1382 (U+AFF7): L<<356.0,650.0>--<356.0,651.0>>/B<<356.0,651.0>-<351.0,620.0>-<345.5,593.0>> = 9.162347045721706

* .notdef#1394 (U+B003): L<<356.0,650.0>--<356.0,651.0>>/B<<356.0,651.0>-<351.0,620.0>-<345.5,593.0>> = 9.162347045721706

* .notdef#1397 (U+B006): L<<356.0,650.0>--<356.0,651.0>>/B<<356.0,651.0>-<351.0,620.0>-<345.5,593.0>> = 9.162347045721706

* .notdef#1399 (U+B008): L<<356.0,650.0>--<356.0,651.0>>/B<<356.0,651.0>-<351.0,620.0>-<345.5,593.0>> = 9.162347045721706

* .notdef#1401 (U+B00A): L<<356.0,650.0>--<356.0,651.0>>/B<<356.0,651.0>-<351.0,620.0>-<345.5,593.0>> = 9.162347045721706

* .notdef#173 (U+260F): B<<596.0,553.0>-<595.0,553.0>-<595.0,554.0>>/L<<595.0,554.0>--<584.0,481.0>> = 8.569141879837645

* 55 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:

* .notdef#10009 (U+D1AA): L<<613.0,195.0>--<614.0,3.0>>

* .notdef#10009 (U+D1AA): L<<716.0,-13.0>--<717.0,199.0>>

* .notdef#10013 (U+D1AE): L<<689.0,-20.0>--<690.0,104.0>>

* .notdef#10037 (U+D1C6): L<<593.0,204.0>--<594.0,3.0>>

* .notdef#10037 (U+D1C6): L<<695.0,-14.0>--<696.0,208.0>>

* .notdef#10041 (U+D1CA): L<<625.0,95.0>--<626.0,-25.0>>

* .notdef#10041 (U+D1CA): L<<689.0,-20.0>--<690.0,113.0>>

* .notdef#10061 (U+D1DE): L<<589.0,395.0>--<588.0,683.0>>

* .notdef#10061 (U+D1DE): L<<680.0,683.0>--<681.0,526.0>>

* .notdef#10061 (U+D1DE): L<<771.0,532.0>--<770.0,726.0>>

* 1695 more.

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

[code: found-semi-vertical]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table.
  • ⚠️ WARN

    This font file does not have a 'meta' table.


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths
  • ℹ️ INFO

    ofl/nanummyeongjo


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

    Hinting filesize impact:

ofl/nanummyeongjo/NanumMyeongjo-Bold.ttf
Dehinted Size 1.9Mb
Hinted Size 2.9Mb
Increase 1.0Mb
Change 53.7 %
[code: size-impact]
ℹ️ INFO Font contains all required tables?
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[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 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 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 2.030;PS 1;hotconv 1.0.56;makeotf.lib2.0.21325', 'Version 2.030;PS 1;hotconv 1.0.56;makeotf.lib2.0.21325']


    [code: version-not-detected]
[43] NanumMyeongjo-Regular.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs.
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+0111: LATIN SMALL LETTER D WITH STROKE U+0110: LATIN CAPITAL LETTER D WITH STROKE
[code: missing-case-counterparts]
🔥 FAIL Checking Vertical Metric Linegaps.
  • 🔥 FAIL

    hhea lineGap is not equal to 0.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, all messages from this check are considered FAILs.

[code: hhea]
🔥 FAIL Font contains '.notdef' as its first glyph?
  • 🔥 FAIL

    The '.notdef' glyph should contain a drawing, but it is blank.


    [code: notdef-is-blank]
🔥 FAIL Ensure smart dropout control is enabled in "prep" table instructions.
  • 🔥 FAIL

    The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script.


    [code: lacks-smart-dropout]
🔥 FAIL Font contains unique glyph names?
  • 🔥 FAIL

    These glyph names occur more than once: ['.notdef']


    [code: duplicated-glyph-names]
🔥 FAIL Are there unwanted tables?
  • 🔥 FAIL

    The following unwanted font tables were found:

  • DSIG - This font has a digital signature (DSIG table) which is only required - even if only a placeholder - on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table.

They can be removed with the 'fix-unwanted-tables' script provided by gftools.

[code: unwanted-tables]
🔥 FAIL Font contains glyphs for whitespace characters?
  • 🔥 FAIL

    Whitespace glyph missing for codepoint 0x00A0.


    [code: missing-whitespace-glyph-0x00A0]
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • 🔥 FAIL

    Please add a family.source.repository_url entry.


    [code: lacks-repo-url]
🔥 FAIL METADATA.pb font.filename and font.post_script_name fields have equivalent values?
  • 🔥 FAIL

    METADATA.pb font filename = "NanumMyeongjo-Regular.ttf" does not match post_script_name="NanumMyeongjo".


    [code: mismatch]
🔥 FAIL METADATA.pb weight matches postScriptName for static fonts.
  • 🔥 FAIL

    METADATA.pb: Mismatch between postScriptName ("NanumMyeongjo") and weight value (400). The name must be ended with "Regular" or "Italic".

🔥 FAIL METADATA.pb font.name and font.full_name fields match the values declared on the name table?
  • 🔥 FAIL

    METADATA.pb Family name "Nanum Myeongjo" does not match name table entry "NanumMyeongjo"!


    [code: familyname-mismatch]
🔥 FAIL METADATA.pb font.name value should be same as the family name declared on the name table.
  • 🔥 FAIL

    Unmatched familyname in font: TTF has familyname = "NanumMyeongjo" while METADATA.pb has font.name = "Nanum Myeongjo".


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

    No GF glyphset was found to be supported >80%, so language shaping support couldn't get checked.


    [code: no-glyphset-supported]
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo 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]
🔥 FAIL Check family name for GF Guide compliance.
  • 🔥 FAIL

    "NanumMyeongjo" is a CamelCased name. To solve this, simply use spaces instead in the font name.


    [code: camelcase]
🔥 FAIL Copyright notices match canonical pattern in fonts
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string.
  • 🔥 FAIL

    First line in license file is:

"copyright (c) 2010, nhn corporation (http://www.nhncorp.com),"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Check copyright namerecords match license file.
  • 🔥 FAIL

    License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 1 (MACINTOSH) is not specified for that. Value was: "NHN Corporation" Must be changed to "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://openfontlicense.org"


    [code: wrong]

  • 🔥 FAIL

    License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 3 (WINDOWS) is not specified for that. Value was: "NHN Corporation" Must be changed to "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://openfontlicense.org"


    [code: wrong]

🔥 FAIL Check font names are correct
  • 🔥 FAIL

    Font names are incorrect:

nameID current expected
Family Name NanumMyeongjo NanumMyeongjo
Subfamily Name Regular Regular
Full Name NanumMyeongjo NanumMyeongjo Regular
Postscript Name NanumMyeongjo NanumMyeongjo-Regular
Typographic Family Name NanumMyeongjo N/A
Typographic Subfamily Name Regular N/A
[code: bad-names]
  • ⚠️ WARN

    Regular missing from full name


    [code: lacks-regular]
🔥 FAIL Check Google Fonts glyph coverage.
  • 🔥 FAIL

    Missing required codepoints:

- 0x00A0 (NO-BREAK SPACE)


- 0x2212 (MINUS SIGN)

[code: missing-codepoints]

⚠️ 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: .notdef#11638	Contours detected: 1	Expected: 0
  • Glyph name: .notdef#30 Contours detected: 4 Expected: 3

  • Glyph name: .notdef#31 Contours detected: 4 Expected: 3

  • Glyph name: .notdef#32 Contours detected: 4 Expected: 3

  • Glyph name: .notdef#33 Contours detected: 4 Expected: 3


[code: contour-count]

⚠️ WARN Ensure files are not too large.
  • ⚠️ WARN

    Font file is 2.9Mb; ideally it should be less than 1.0Mb


    [code: large-font]
⚠️ WARN Check math signs have the same width.
  • ⚠️ WARN

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

Width = 654: logicalnot, equal, plus

Width = 561: greater, less

[code: width-outliers]
⚠️ WARN Does the font contain a soft hyphen?
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


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

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

- idotless

[code: unreachable-glyphs]

⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
  • ⚠️ WARN

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


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

    It seems that Sandoll Communication 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+0111 LATIN SMALL LETTER D WITH STROKE: try adding one of: vietnamese, latin-ext
  • U+0126 LATIN CAPITAL LETTER H WITH STROKE: try adding latin-ext
  • U+0127 LATIN SMALL LETTER H WITH STROKE: try adding latin-ext
  • U+0132 LATIN CAPITAL LIGATURE IJ: try adding latin-ext
  • U+0133 LATIN SMALL LIGATURE IJ: try adding latin-ext
  • U+0138 LATIN SMALL LETTER KRA: try adding latin-ext
  • U+013F LATIN CAPITAL LETTER L WITH MIDDLE DOT: try adding latin-ext
  • U+0140 LATIN SMALL LETTER L WITH MIDDLE DOT: try adding latin-ext
  • U+0141 LATIN CAPITAL LETTER L WITH STROKE: try adding latin-ext
  • U+0142 LATIN SMALL LETTER L WITH STROKE: try adding latin-ext 396 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: korean, latin, menu

[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 Check OFL body text is correct.

Lines changed:

+ with Reserved Font Name Nanum, Naver Nanum, NanumGothic, Naver NanumGothic, NanumMyeongjo,\n

+ Naver NanumMyeongjo, NanumBrush, Naver NanumBrush, NanumPen, Naver NanumPen\n

+ \n

- This license is copied below, and is also available with a FAQ at:\n

+ This license is copied below, and is also available with a FAQ at: https://openfontlicense.org\n

- https://openfontlicense.org\n

+ \n

+ SIL OPEN FONT LICENSE\n

+ Version 1.1 - 26 February 2007\n

+ \n

+ PREAMBLE\n

+ The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects,\n

+ to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework\n

+ in which fonts may be shared and improved in partnership with others.\n

+ \n

+ The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold\n

+ by themselves.\n

+ The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided\n

+ that any reserved names are not used by derivative works.\n

+ The fonts and derivatives, however, cannot be released under any other type of license.\n

+ The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.\n

- -----------------------------------------------------------\n

- SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007\n

- -----------------------------------------------------------\n

- \n

- PREAMBLE\n

- The goals of the Open Font License (OFL) are to stimulate worldwide\n

- development of collaborative font projects, to support the font creation\n

- efforts of academic and linguistic communities, and to provide a free and\n

- open framework in which fonts may be shared and improved in partnership\n

- with others.\n

- \n

- The OFL allows the licensed fonts to be used, studied, modified and\n

- redistributed freely as long as they are not sold by themselves. The\n

- fonts, including any derivative works, can be bundled, embedded,\n

- redistributed and/or sold with any software provided that any reserved\n

- names are not used by derivative works. The fonts and derivatives,\n

- however, cannot be released under any other type of license. The\n

- requirement for fonts to remain under this license does not apply\n

- to any document created using the fonts or their derivatives.\n

+ "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such.\n

- "Font Software" refers to the set of files released by the Copyright\n

- Holder(s) under this license and clearly marked as such. This may\n

- include source files, build scripts and documentation.\n

+ This may include source files, build scripts and documentation.\n

- "Reserved Font Name" refers to any names specified as such after the\n

+ "Reserved Font Name" refers to any names specified as such after the copyright statement(s).\n

- copyright statement(s).\n

- "Original Version" refers to the collection of Font Software components as\n

+ "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).\n

- distributed by the Copyright Holder(s).\n

- "Modified Version" refers to any derivative made by adding to, deleting,\n

+ "Modified Version" refers to any derivative made by adding to, deleting, or substituting ? in part or in whole ?\n

- or substituting -- in part or in whole -- any of the components of the\n

- Original Version, by changing formats or by porting the Font Software to a\n

+ any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.\n

- new environment.\n

- "Author" refers to any designer, engineer, programmer, technical\n

- writer or other person who contributed to the Font Software.\n

+ "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.\n

+ \n

+ Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge,\n

+ embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:\n

- Permission is hereby granted, free of charge, to any person obtaining\n

- a copy of the Font Software, to use, study, copy, merge, embed, modify,\n

- redistribute, and sell modified and unmodified copies of the Font\n

- Software, subject to the following conditions:\n

- 1) Neither the Font Software nor any of its individual components,\n

+ 1) Neither the Font Software nor any of its individual components,in Original or Modified Versions,\n

- in Original or Modified Versions, may be sold by itself.\n

+ may be sold by itself.\n

- 2) Original or Modified Versions of the Font Software may be bundled,\n

+ 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software,\n

+ provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files,\n

+ human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields\n

+ can be easily viewed by the user.\n

- redistributed and/or sold with any software, provided that each copy\n

- contains the above copyright notice and this license. These can be\n

- included either as stand-alone text files, human-readable headers or\n

- in the appropriate machine-readable metadata fields within text or\n

- binary files as long as those fields can be easily viewed by the user.\n

- 3) No Modified Version of the Font Software may use the Reserved Font\n

+ 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written\n

+ permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented\n

+ to the users.\n

- Name(s) unless explicit written permission is granted by the corresponding\n

- Copyright Holder. This restriction only applies to the primary font name as\n

- presented to the users.\n

+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise\n

+ any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit\n

+ written permission.\n

- 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font\n

- Software shall not be used to promote, endorse or advertise any\n

- Modified Version, except to acknowledge the contribution(s) of the\n

- Copyright Holder(s) and the Author(s) or with their explicit written\n

- permission.\n

+ 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed\n

+ under any other license. The requirement for fonts to remain under this license does not apply to any document created using\n

- 5) The Font Software, modified or unmodified, in part or in whole,\n

- must be distributed entirely under this license, and must not be\n

- distributed under any other license. The requirement for fonts to\n

- remain under this license does not apply to any document created\n

- using the Font Software.\n

+ the Font Software.\n

+ \n

+ \n

- This license becomes null and void if any of the above conditions are\n

+ This license becomes null and void if any of the above conditions are not met.\n

- not met.\n

+ \n

+ \n

- THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\n

+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n

+ INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT.\n

- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\n

- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\n

- OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE\n

- COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n

+ IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n

+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE\n

- INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\n

- DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n

- FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM\n

- OTHER DEALINGS IN THE FONT SOFTWARE.

+ OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

[code: incorrect-ofl-body-text]
⚠️ WARN Check the direction of the outermost contour in each glyph
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* .notdef#11638 (U+00AD) has a counter-clockwise outer contour

* .notdef#2 (U+201F) has a counter-clockwise outer contour

* .notdef#2 (U+201F) has a counter-clockwise outer contour

* backslash (U+005C) has a counter-clockwise outer contour

* brokenbar (U+00A6) has a counter-clockwise outer contour

* brokenbar (U+00A6) has a counter-clockwise outer contour

* logicalnot (U+00AC) has a counter-clockwise outer contour

* quotereversed (U+201B) has a counter-clockwise outer contour

[code: ccw-outer-contour]

⚠️ WARN Do outlines contain any jaggy segments?
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* .notdef#10531 (U+D3B4): B<<388.5,230.0>-<425.0,233.0>-<461.0,238.0>>/L<<461.0,238.0>--<442.0,237.0>> = 4.894375198775078

* .notdef#1406 (U+B00F): B<<590.5,440.5>-<503.0,427.0>-<420.0,417.0>>/L<<420.0,417.0>--<424.0,417.0>> = 6.869992308214263

* .notdef#1423 (U+B020): B<<590.5,440.5>-<503.0,427.0>-<420.0,417.0>>/L<<420.0,417.0>--<424.0,417.0>> = 6.869992308214263

* .notdef#1425 (U+B022): B<<590.5,440.5>-<503.0,427.0>-<420.0,417.0>>/L<<420.0,417.0>--<424.0,417.0>> = 6.869992308214263

* .notdef#1427 (U+B024): B<<590.5,440.5>-<503.0,427.0>-<420.0,417.0>>/L<<420.0,417.0>--<424.0,417.0>> = 6.869992308214263

* .notdef#1429 (U+B026): B<<590.5,440.5>-<503.0,427.0>-<420.0,417.0>>/L<<420.0,417.0>--<424.0,417.0>> = 6.869992308214263

* .notdef#175 (U+261D): B<<436.5,503.0>-<437.0,486.0>-<438.0,476.0>>/B<<438.0,476.0>-<440.0,498.0>-<449.0,519.0>> = 10.905022045234459

* .notdef#177 (U+261F): B<<449.0,183.5>-<440.0,204.0>-<437.0,227.0>>/B<<437.0,227.0>-<436.0,216.0>-<435.5,199.0>> = 12.625836878907304

* .notdef#178 (U+262F): B<<846.0,360.0>-<851.0,322.0>-<843.0,288.0>>/B<<843.0,288.0>-<850.0,311.0>-<852.0,332.0>> = 3.686993148959687

* .notdef#40 (U+2222): L<<513.0,642.0>--<511.0,684.0>>/B<<511.0,684.0>-<511.0,683.0>-<522.5,676.5>> = 2.726310993906212

* 17 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:

* .notdef#10009 (U+D1AA): L<<596.0,207.0>--<597.0,0.0>>

* .notdef#10009 (U+D1AA): L<<734.0,-25.0>--<735.0,212.0>>

* .notdef#10013 (U+D1AE): L<<612.0,87.0>--<613.0,-36.0>>

* .notdef#10013 (U+D1AE): L<<706.0,-32.0>--<707.0,104.0>>

* .notdef#10037 (U+D1C6): L<<569.0,204.0>--<570.0,0.0>>

* .notdef#10037 (U+D1C6): L<<715.0,-25.0>--<716.0,209.0>>

* .notdef#10041 (U+D1CA): L<<608.0,87.0>--<609.0,-35.0>>

* .notdef#10041 (U+D1CA): L<<700.0,-32.0>--<701.0,104.0>>

* .notdef#10065 (U+D1E2): L<<631.0,188.0>--<632.0,0.0>>

* .notdef#10065 (U+D1E2): L<<776.0,-25.0>--<777.0,194.0>>

* 1632 more.

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

[code: found-semi-vertical]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table.
  • ⚠️ WARN

    This font file does not have a 'meta' table.


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths
  • ℹ️ INFO

    ofl/nanummyeongjo


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

    Hinting filesize impact:

ofl/nanummyeongjo/NanumMyeongjo-Regular.ttf
Dehinted Size 1.8Mb
Hinted Size 2.9Mb
Increase 1.1Mb
Change 58.2 %
[code: size-impact]
ℹ️ INFO Font contains all required tables?
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[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 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 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 2.030;PS 1;hotconv 1.0.56;makeotf.lib2.0.21325', 'Version 2.030;PS 1;hotconv 1.0.56;makeotf.lib2.0.21325']


    [code: version-not-detected]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 61 47 192 25 370 0
0% 0% 9% 7% 28% 4% 53% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

@simoncozens simoncozens changed the title Hotfixed fonts to add a space character [Nanum Myeongjo] Hotfixed fonts to add a space character Dec 6, 2024
@emmamarichal
Copy link
Collaborator

Thanks @simoncozens!
Could you bump the font version? 2.030 -> 2.031

I want to make sure this fail isn't a problem in our case:

🔥 FAIL Font contains glyphs for whitespace characters?
Whitespace glyph missing for codepoint 0x00A0.

Also, diffenator2 doesn't work:

fonts marichalemma$ diffenator2 diff -fa /Users/marichalemma/Downloads/nanummyeongjo/fonts/NanumMyeongjo-Regular.ttf -fb /Users/marichalemma/Downloads/nanummyeongjo/fonts/before/NanumMyeongjo-Regular.ttf 
[2/2] _diffenator "{'fonts_before': ['...gjo/fonts/NanumMyeongjo-Regular.ttf'}"
FAILED: out/Regular 
_diffenator "{'fonts_before': ['/Users/marichalemma/Downloads/nanummyeongjo/fonts/before/NanumMyeongjo-Regular.ttf'], 'fonts_after': ['/Users/marichalemma/Downloads/nanummyeongjo/fonts/NanumMyeongjo-Regular.ttf'], 'diffbrowsers': True, 'diffenator': True, 'out': 'out', 'imgs': False, 'styles': 'instances', 'characters': '.*', 'user_wordlist': None, 'filter_styles': 'Regular', 'font_size': 28, 'pt_size': 20, 'threshold': 0.9, 'precision': 28, 'no_words': False, 'no_tables': False, 'diffenator_template': '/Users/marichalemma/Google/env/lib/python3.12/site-packages/diffenator2/templates/diffenator.html', 'command': 'diff', 'diffbrowsers_templates': [], 'debug_gifs': False, 'kwargs': {'no_diffenator': False, 'no_diffbrowsers': False}, 'no_diffenator': False, 'no_diffbrowsers': False, 'coords': 'wght=400', 'old_font': '/Users/marichalemma/Downloads/nanummyeongjo/fonts/before/NanumMyeongjo-Regular.ttf', 'new_font': '/Users/marichalemma/Downloads/nanummyeongjo/fonts/NanumMyeongjo-Regular.ttf'}"
 64%|██████▍   | 7657/11880 [00:02<00:01, 3121.52it/s]
Traceback (most recent call last):
  File "/Users/marichalemma/Google/env/bin/_diffenator", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/Users/marichalemma/Google/env/lib/python3.12/site-packages/diffenator2/_diffenator.py", line 110, in main
    diff.diff_all()
  File "/Users/marichalemma/Google/env/lib/python3.12/site-packages/diffenator2/_diffenator.py", line 39, in diff_all
    self.diff_words()
  File "/Users/marichalemma/Google/env/lib/python3.12/site-packages/diffenator2/_diffenator.py", line 57, in diff_words
    self.glyph_diff = test_fonts(
                      ^^^^^^^^^^^
  File "/Users/marichalemma/Google/env/lib/python3.12/site-packages/diffenator2/shape.py", line 51, in test_fonts
    glyphs = test_font_glyphs(font_a, font_b, threshold=threshold, font_size=font_size)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/marichalemma/Google/env/lib/python3.12/site-packages/diffenator2/shape.py", line 72, in test_font_glyphs
    pc, diff_map = differ.diff(g)
                   ^^^^^^^^^^^^^^
  File "/Users/marichalemma/Google/env/lib/python3.12/site-packages/diffenator2/renderer.py", line 217, in diff
    img_a, left_a = self.renderer_a.render(string)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/marichalemma/Google/env/lib/python3.12/site-packages/diffenator2/renderer.py", line 57, in render
    return self.render_text_cairo(text)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/marichalemma/Google/env/lib/python3.12/site-packages/diffenator2/renderer.py", line 75, in render_text_cairo
    left_edge = (min(0, orig_bounds[0], orig_bounds[2]) - self.margin) * scaleFactor
                        ~~~~~~~~~~~^^^
TypeError: 'NoneType' object is not subscriptable
ninja: build stopped: subcommand failed.

@simoncozens
Copy link
Collaborator Author

This bumps the version and adds the 0xA0 character.

Copy link

github-actions bot commented Dec 9, 2024

FontBakery report

fontbakery version: 0.13.0a6

Check results

[3] Family checks
🔥 FAIL Fonts have equal codepoint coverage
  • 🔥 FAIL
  • ExtraBold contains encoded codepoints not found in other related fonts: - U+3231

    • U+3239
[code: glyphset-diverges]
⚠️ WARN Fonts have consistent PANOSE family type?
  • ⚠️ WARN

    PANOSE family type is not the same across this family. In order to fix this, please make sure that the panose.bFamilyType value is the same in the OS/2 table of all of this family font files.

The following PANOSE family types were found:

- 2: NanumMyeongjo-ExtraBold.ttf
  • 0: NanumMyeongjo-Bold.ttf and NanumMyeongjo-Regular.ttf

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

    All of the fonts lack a STAT table.


    [code: summary]
[43] NanumMyeongjo-ExtraBold.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs.
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+0111: LATIN SMALL LETTER D WITH STROKE U+0110: LATIN CAPITAL LETTER D WITH STROKE
[code: missing-case-counterparts]
🔥 FAIL Checking Vertical Metric Linegaps.
  • 🔥 FAIL

    hhea lineGap is not equal to 0.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, all messages from this check are considered FAILs.

[code: hhea]
🔥 FAIL Font contains '.notdef' as its first glyph?
  • 🔥 FAIL

    The '.notdef' glyph should contain a drawing, but it is blank.


    [code: notdef-is-blank]
🔥 FAIL Ensure smart dropout control is enabled in "prep" table instructions.
  • 🔥 FAIL

    The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script.


    [code: lacks-smart-dropout]
🔥 FAIL Font contains unique glyph names?
  • 🔥 FAIL

    These glyph names occur more than once: ['.notdef']


    [code: duplicated-glyph-names]
🔥 FAIL Are there unwanted tables?
  • 🔥 FAIL

    The following unwanted font tables were found:

  • DSIG - This font has a digital signature (DSIG table) which is only required - even if only a placeholder - on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table.

They can be removed with the 'fix-unwanted-tables' script provided by gftools.

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

    Please add a family.source.repository_url entry.


    [code: lacks-repo-url]
🔥 FAIL METADATA.pb font.filename and font.post_script_name fields have equivalent values?
  • 🔥 FAIL

    METADATA.pb font filename = "NanumMyeongjo-ExtraBold.ttf" does not match post_script_name="NanumMyeongjoExtraBold".


    [code: mismatch]
🔥 FAIL METADATA.pb weight matches postScriptName for static fonts.
  • 🔥 FAIL

    METADATA.pb: Mismatch between postScriptName ("NanumMyeongjoExtraBold") and weight value (800). The name must be ended with "ExtraBold" or "ExtraBoldItalic".

🔥 FAIL METADATA.pb font.name and font.full_name fields match the values declared on the name table?
  • 🔥 FAIL

    METADATA.pb: Fullname "NanumMyeongjoExtraBold" does not match name table entry "NanumMyeongjo ExtraBold"!


    [code: fullname-mismatch]
🔥 FAIL METADATA.pb font.name value should be same as the family name declared on the name table.
  • 🔥 FAIL

    Unmatched familyname in font: TTF has familyname = "NanumMyeongjo" while METADATA.pb has font.name = "Nanum Myeongjo".


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

    No GF glyphset was found to be supported >80%, so language shaping support couldn't get checked.


    [code: no-glyphset-supported]
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo 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]
🔥 FAIL Check family name for GF Guide compliance.
  • 🔥 FAIL

    "NanumMyeongjo" is a CamelCased name. To solve this, simply use spaces instead in the font name.


    [code: camelcase]
🔥 FAIL Copyright notices match canonical pattern in fonts
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string.
  • 🔥 FAIL

    First line in license file is:

"copyright (c) 2010, nhn corporation (http://www.nhncorp.com),"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Check copyright namerecords match license file.
  • 🔥 FAIL

    License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 1 (MACINTOSH) is not specified for that. Value was: "NHN Corporation" Must be changed to "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://openfontlicense.org"


    [code: wrong]

  • 🔥 FAIL

    License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 3 (WINDOWS) is not specified for that. Value was: "NHN Corporation" Must be changed to "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://openfontlicense.org"


    [code: wrong]

🔥 FAIL Check font names are correct
  • 🔥 FAIL

    Font names are incorrect:

nameID current expected
Family Name NanumMyeongjoExtraBold NanumMyeongjo ExtraBold
Subfamily Name Regular Regular
Full Name NanumMyeongjoExtraBold NanumMyeongjo ExtraBold
Postscript Name NanumMyeongjoExtraBold NanumMyeongjo-ExtraBold
Typographic Family Name NanumMyeongjo NanumMyeongjo
Typographic Subfamily Name ExtraBold ExtraBold
[code: bad-names]
🔥 FAIL Check Google Fonts glyph coverage.
  • 🔥 FAIL

    Missing required codepoints:

- 0x2212 (MINUS SIGN)

[code: missing-codepoints]

⚠️ 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: .notdef#11640	Contours detected: 1	Expected: 0
  • Glyph name: .notdef#30 Contours detected: 4 Expected: 3

  • Glyph name: .notdef#31 Contours detected: 4 Expected: 3

  • Glyph name: .notdef#32 Contours detected: 4 Expected: 3

  • Glyph name: .notdef#33 Contours detected: 4 Expected: 3


[code: contour-count]

⚠️ WARN Ensure files are not too large.
  • ⚠️ WARN

    Font file is 3.0Mb; ideally it should be less than 1.0Mb


    [code: large-font]
⚠️ WARN Check math signs have the same width.
  • ⚠️ WARN

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

Width = 654: logicalnot, plus, equal

Width = 561: less, greater

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

    The following glyphs have overlapping path segments:

* .notdef#1329 (U+AFC0): B<<354.0,-28.0>-<354.0,-27.0>-<353.0,-26.0>> has the same coordinates as a previous segment.

* .notdef#1553 (U+B0A0): B<<377.0,-32.0>-<377.0,-31.0>-<376.0,-30.0>> has the same coordinates as a previous segment.

* .notdef#3758 (U+B93D): L<<451.0,311.0>--<451.0,309.0>> has the same coordinates as a previous segment.

* .notdef#6904 (U+C587): L<<670.0,321.0>--<669.0,321.0>> has the same coordinates as a previous segment.

[code: overlapping-path-segments]

⚠️ WARN Does the font contain a soft hyphen?
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


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

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

- idotless

[code: unreachable-glyphs]

⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
  • ⚠️ WARN

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


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

    It seems that Sandoll Communication 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+0111 LATIN SMALL LETTER D WITH STROKE: try adding one of: vietnamese, latin-ext
  • U+0126 LATIN CAPITAL LETTER H WITH STROKE: try adding latin-ext
  • U+0127 LATIN SMALL LETTER H WITH STROKE: try adding latin-ext
  • U+0132 LATIN CAPITAL LIGATURE IJ: try adding latin-ext
  • U+0133 LATIN SMALL LIGATURE IJ: try adding latin-ext
  • U+0138 LATIN SMALL LETTER KRA: try adding latin-ext
  • U+013F LATIN CAPITAL LETTER L WITH MIDDLE DOT: try adding latin-ext
  • U+0140 LATIN SMALL LETTER L WITH MIDDLE DOT: try adding latin-ext
  • U+0141 LATIN CAPITAL LETTER L WITH STROKE: try adding latin-ext
  • U+0142 LATIN SMALL LETTER L WITH STROKE: try adding latin-ext 398 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: korean, latin, menu

[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 Check OFL body text is correct.

Lines changed:

+ with Reserved Font Name Nanum, Naver Nanum, NanumGothic, Naver NanumGothic, NanumMyeongjo,\n

+ Naver NanumMyeongjo, NanumBrush, Naver NanumBrush, NanumPen, Naver NanumPen\n

+ \n

- This license is copied below, and is also available with a FAQ at:\n

+ This license is copied below, and is also available with a FAQ at: https://openfontlicense.org\n

- https://openfontlicense.org\n

+ \n

+ SIL OPEN FONT LICENSE\n

+ Version 1.1 - 26 February 2007\n

+ \n

+ PREAMBLE\n

+ The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects,\n

+ to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework\n

+ in which fonts may be shared and improved in partnership with others.\n

+ \n

+ The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold\n

+ by themselves.\n

+ The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided\n

+ that any reserved names are not used by derivative works.\n

+ The fonts and derivatives, however, cannot be released under any other type of license.\n

+ The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.\n

- -----------------------------------------------------------\n

- SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007\n

- -----------------------------------------------------------\n

- \n

- PREAMBLE\n

- The goals of the Open Font License (OFL) are to stimulate worldwide\n

- development of collaborative font projects, to support the font creation\n

- efforts of academic and linguistic communities, and to provide a free and\n

- open framework in which fonts may be shared and improved in partnership\n

- with others.\n

- \n

- The OFL allows the licensed fonts to be used, studied, modified and\n

- redistributed freely as long as they are not sold by themselves. The\n

- fonts, including any derivative works, can be bundled, embedded,\n

- redistributed and/or sold with any software provided that any reserved\n

- names are not used by derivative works. The fonts and derivatives,\n

- however, cannot be released under any other type of license. The\n

- requirement for fonts to remain under this license does not apply\n

- to any document created using the fonts or their derivatives.\n

+ "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such.\n

- "Font Software" refers to the set of files released by the Copyright\n

- Holder(s) under this license and clearly marked as such. This may\n

- include source files, build scripts and documentation.\n

+ This may include source files, build scripts and documentation.\n

- "Reserved Font Name" refers to any names specified as such after the\n

+ "Reserved Font Name" refers to any names specified as such after the copyright statement(s).\n

- copyright statement(s).\n

- "Original Version" refers to the collection of Font Software components as\n

+ "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).\n

- distributed by the Copyright Holder(s).\n

- "Modified Version" refers to any derivative made by adding to, deleting,\n

+ "Modified Version" refers to any derivative made by adding to, deleting, or substituting ? in part or in whole ?\n

- or substituting -- in part or in whole -- any of the components of the\n

- Original Version, by changing formats or by porting the Font Software to a\n

+ any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.\n

- new environment.\n

- "Author" refers to any designer, engineer, programmer, technical\n

- writer or other person who contributed to the Font Software.\n

+ "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.\n

+ \n

+ Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge,\n

+ embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:\n

- Permission is hereby granted, free of charge, to any person obtaining\n

- a copy of the Font Software, to use, study, copy, merge, embed, modify,\n

- redistribute, and sell modified and unmodified copies of the Font\n

- Software, subject to the following conditions:\n

- 1) Neither the Font Software nor any of its individual components,\n

+ 1) Neither the Font Software nor any of its individual components,in Original or Modified Versions,\n

- in Original or Modified Versions, may be sold by itself.\n

+ may be sold by itself.\n

- 2) Original or Modified Versions of the Font Software may be bundled,\n

+ 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software,\n

+ provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files,\n

+ human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields\n

+ can be easily viewed by the user.\n

- redistributed and/or sold with any software, provided that each copy\n

- contains the above copyright notice and this license. These can be\n

- included either as stand-alone text files, human-readable headers or\n

- in the appropriate machine-readable metadata fields within text or\n

- binary files as long as those fields can be easily viewed by the user.\n

- 3) No Modified Version of the Font Software may use the Reserved Font\n

+ 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written\n

+ permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented\n

+ to the users.\n

- Name(s) unless explicit written permission is granted by the corresponding\n

- Copyright Holder. This restriction only applies to the primary font name as\n

- presented to the users.\n

+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise\n

+ any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit\n

+ written permission.\n

- 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font\n

- Software shall not be used to promote, endorse or advertise any\n

- Modified Version, except to acknowledge the contribution(s) of the\n

- Copyright Holder(s) and the Author(s) or with their explicit written\n

- permission.\n

+ 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed\n

+ under any other license. The requirement for fonts to remain under this license does not apply to any document created using\n

- 5) The Font Software, modified or unmodified, in part or in whole,\n

- must be distributed entirely under this license, and must not be\n

- distributed under any other license. The requirement for fonts to\n

- remain under this license does not apply to any document created\n

- using the Font Software.\n

+ the Font Software.\n

+ \n

+ \n

- This license becomes null and void if any of the above conditions are\n

+ This license becomes null and void if any of the above conditions are not met.\n

- not met.\n

+ \n

+ \n

- THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\n

+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n

+ INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT.\n

- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\n

- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\n

- OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE\n

- COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n

+ IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n

+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE\n

- INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\n

- DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n

- FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM\n

- OTHER DEALINGS IN THE FONT SOFTWARE.

+ OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

[code: incorrect-ofl-body-text]
⚠️ WARN Check the direction of the outermost contour in each glyph
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* .notdef#11640 (U+00AD) has a counter-clockwise outer contour

* .notdef#24 (U+21BC) has a counter-clockwise outer contour

* .notdef#378 (U+AC09) has a counter-clockwise outer contour

* .notdef#378 (U+AC09) has a counter-clockwise outer contour

* .notdef#379 (U+AC0A) has a counter-clockwise outer contour

* .notdef#4 (U+2035) has a counter-clockwise outer contour

* .notdef#5 (U+2036) has a counter-clockwise outer contour

* .notdef#5 (U+2036) has a counter-clockwise outer contour

* backslash (U+005C) has a counter-clockwise outer contour

* brokenbar (U+00A6) has a counter-clockwise outer contour

* brokenbar (U+00A6) has a counter-clockwise outer contour

* logicalnot (U+00AC) has a counter-clockwise outer contour

[code: ccw-outer-contour]

⚠️ WARN Do outlines contain any jaggy segments?
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* .notdef#10006 (U+D1A5): B<<398.0,-79.0>-<409.0,-71.0>-<413.0,-69.0>>/B<<413.0,-69.0>-<407.0,-71.0>-<394.5,-74.0>> = 8.13010235415587

* .notdef#10034 (U+D1C1): B<<367.5,-80.0>-<377.0,-73.0>-<382.0,-70.0>>/B<<382.0,-70.0>-<376.0,-72.0>-<363.5,-75.5>> = 12.528807709151492

* .notdef#10043 (U+D1CA): L<<472.0,189.0>--<472.0,190.0>>/B<<472.0,190.0>-<471.0,186.0>-<466.5,169.0>> = 14.036243467926484

* .notdef#1005 (U+AE7C): B<<338.0,113.0>-<361.0,152.0>-<374.0,188.0>>/B<<374.0,188.0>-<373.0,186.0>-<374.0,197.0>> = 6.709836807756842

* .notdef#10118 (U+D215): B<<398.0,-79.0>-<409.0,-71.0>-<413.0,-69.0>>/B<<413.0,-69.0>-<407.0,-71.0>-<394.5,-74.0>> = 8.13010235415587

* .notdef#10146 (U+D231): B<<398.0,-79.0>-<409.0,-71.0>-<413.0,-69.0>>/B<<413.0,-69.0>-<407.0,-71.0>-<394.5,-74.0>> = 8.13010235415587

* .notdef#10174 (U+D24D): B<<409.0,-80.5>-<418.0,-73.0>-<423.0,-70.0>>/B<<423.0,-70.0>-<417.0,-72.0>-<404.5,-75.0>> = 12.528807709151492

* .notdef#1018 (U+AE89): B<<370.0,-80.5>-<381.0,-72.0>-<386.0,-69.0>>/B<<386.0,-69.0>-<380.0,-71.0>-<367.0,-74.5>> = 12.528807709151492

* .notdef#10230 (U+D285): B<<409.0,-80.5>-<418.0,-73.0>-<423.0,-70.0>>/B<<423.0,-70.0>-<417.0,-72.0>-<404.5,-75.0>> = 12.528807709151492

* .notdef#10233 (U+D288): L<<457.0,53.0>--<457.0,55.0>>/B<<457.0,55.0>-<456.0,48.0>-<456.0,43.0>> = 8.13010235415596

* 647 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:

* .notdef#10011 (U+D1AA): L<<616.0,191.0>--<617.0,6.0>>

* .notdef#10011 (U+D1AA): L<<698.0,-6.0>--<699.0,196.0>>

* .notdef#10030 (U+D1BD): L<<305.0,458.0>--<420.0,459.0>>

* .notdef#10031 (U+D1BE): L<<305.0,458.0>--<420.0,459.0>>

* .notdef#10032 (U+D1BF): L<<305.0,458.0>--<420.0,459.0>>

* .notdef#10034 (U+D1C1): L<<305.0,458.0>--<420.0,459.0>>

* .notdef#10035 (U+D1C2): L<<306.0,471.0>--<421.0,472.0>>

* .notdef#10036 (U+D1C3): L<<305.0,458.0>--<420.0,459.0>>

* .notdef#10037 (U+D1C4): L<<306.0,471.0>--<421.0,472.0>>

* .notdef#10038 (U+D1C5): L<<306.0,471.0>--<421.0,472.0>>

* 1933 more.

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

[code: found-semi-vertical]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table.
  • ⚠️ WARN

    This font file does not have a 'meta' table.


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths
  • ℹ️ INFO

    ofl/nanummyeongjo


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

    Hinting filesize impact:

ofl/nanummyeongjo/NanumMyeongjo-ExtraBold.ttf
Dehinted Size 2.0Mb
Hinted Size 3.0Mb
Increase 1.1Mb
Change 54.7 %
[code: size-impact]
ℹ️ INFO Font contains all required tables?
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[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 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 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 2.031;PS 1;hotconv 1.0.56;makeotf.lib2.0.21325', 'Version 2.031;PS 1;hotconv 1.0.56;makeotf.lib2.0.21325']


    [code: version-not-detected]
[42] NanumMyeongjo-Bold.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs.
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+0111: LATIN SMALL LETTER D WITH STROKE U+0110: LATIN CAPITAL LETTER D WITH STROKE
[code: missing-case-counterparts]
🔥 FAIL Checking Vertical Metric Linegaps.
  • 🔥 FAIL

    hhea lineGap is not equal to 0.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, all messages from this check are considered FAILs.

[code: hhea]
🔥 FAIL Font contains '.notdef' as its first glyph?
  • 🔥 FAIL

    The '.notdef' glyph should contain a drawing, but it is blank.


    [code: notdef-is-blank]
🔥 FAIL Ensure smart dropout control is enabled in "prep" table instructions.
  • 🔥 FAIL

    The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script.


    [code: lacks-smart-dropout]
🔥 FAIL Font contains unique glyph names?
  • 🔥 FAIL

    These glyph names occur more than once: ['.notdef']


    [code: duplicated-glyph-names]
🔥 FAIL Are there unwanted tables?
  • 🔥 FAIL

    The following unwanted font tables were found:

  • DSIG - This font has a digital signature (DSIG table) which is only required - even if only a placeholder - on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table.

They can be removed with the 'fix-unwanted-tables' script provided by gftools.

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

    Please add a family.source.repository_url entry.


    [code: lacks-repo-url]
🔥 FAIL METADATA.pb font.filename and font.post_script_name fields have equivalent values?
  • 🔥 FAIL

    METADATA.pb font filename = "NanumMyeongjo-Bold.ttf" does not match post_script_name="NanumMyeongjoBold".


    [code: mismatch]
🔥 FAIL METADATA.pb weight matches postScriptName for static fonts.
  • 🔥 FAIL

    METADATA.pb: Mismatch between postScriptName ("NanumMyeongjoBold") and weight value (700). The name must be ended with "Bold" or "BoldItalic".

🔥 FAIL METADATA.pb font.name and font.full_name fields match the values declared on the name table?
  • 🔥 FAIL

    METADATA.pb: Fullname "NanumMyeongjoBold" does not match name table entry "NanumMyeongjo Bold"!


    [code: fullname-mismatch]
🔥 FAIL METADATA.pb font.name value should be same as the family name declared on the name table.
  • 🔥 FAIL

    Unmatched familyname in font: TTF has familyname = "NanumMyeongjo" while METADATA.pb has font.name = "Nanum Myeongjo".


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

    No GF glyphset was found to be supported >80%, so language shaping support couldn't get checked.


    [code: no-glyphset-supported]
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo 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]
🔥 FAIL Check family name for GF Guide compliance.
  • 🔥 FAIL

    "NanumMyeongjo" is a CamelCased name. To solve this, simply use spaces instead in the font name.


    [code: camelcase]
🔥 FAIL Copyright notices match canonical pattern in fonts
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string.
  • 🔥 FAIL

    First line in license file is:

"copyright (c) 2010, nhn corporation (http://www.nhncorp.com),"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Check copyright namerecords match license file.
  • 🔥 FAIL

    License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 1 (MACINTOSH) is not specified for that. Value was: "NHN Corporation" Must be changed to "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://openfontlicense.org"


    [code: wrong]

  • 🔥 FAIL

    License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 3 (WINDOWS) is not specified for that. Value was: "NHN Corporation" Must be changed to "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://openfontlicense.org"


    [code: wrong]

🔥 FAIL Check font names are correct
  • 🔥 FAIL

    Font names are incorrect:

nameID current expected
Family Name NanumMyeongjo NanumMyeongjo
Subfamily Name Bold Bold
Full Name NanumMyeongjoBold NanumMyeongjo Bold
Postscript Name NanumMyeongjoBold NanumMyeongjo-Bold
Typographic Family Name NanumMyeongjo N/A
Typographic Subfamily Name Bold N/A
[code: bad-names]
🔥 FAIL Check Google Fonts glyph coverage.
  • 🔥 FAIL

    Missing required codepoints:

- 0x2212 (MINUS SIGN)

[code: missing-codepoints]

⚠️ 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: .notdef#11638	Contours detected: 1	Expected: 0
  • Glyph name: .notdef#30 Contours detected: 4 Expected: 3

  • Glyph name: .notdef#31 Contours detected: 4 Expected: 3

  • Glyph name: .notdef#32 Contours detected: 4 Expected: 3

  • Glyph name: .notdef#33 Contours detected: 4 Expected: 3


[code: contour-count]

⚠️ WARN Ensure files are not too large.
  • ⚠️ WARN

    Font file is 2.9Mb; ideally it should be less than 1.0Mb


    [code: large-font]
⚠️ WARN Check math signs have the same width.
  • ⚠️ WARN

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

Width = 654: logicalnot, plus, equal

Width = 561: less, greater

[code: width-outliers]
⚠️ WARN Does the font contain a soft hyphen?
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


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

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

- idotless

[code: unreachable-glyphs]

⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
  • ⚠️ WARN

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


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

    It seems that Sandoll Communication 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+0111 LATIN SMALL LETTER D WITH STROKE: try adding one of: vietnamese, latin-ext
  • U+0126 LATIN CAPITAL LETTER H WITH STROKE: try adding latin-ext
  • U+0127 LATIN SMALL LETTER H WITH STROKE: try adding latin-ext
  • U+0132 LATIN CAPITAL LIGATURE IJ: try adding latin-ext
  • U+0133 LATIN SMALL LIGATURE IJ: try adding latin-ext
  • U+0138 LATIN SMALL LETTER KRA: try adding latin-ext
  • U+013F LATIN CAPITAL LETTER L WITH MIDDLE DOT: try adding latin-ext
  • U+0140 LATIN SMALL LETTER L WITH MIDDLE DOT: try adding latin-ext
  • U+0141 LATIN CAPITAL LETTER L WITH STROKE: try adding latin-ext
  • U+0142 LATIN SMALL LETTER L WITH STROKE: try adding latin-ext 396 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: korean, latin, menu

[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 Check OFL body text is correct.

Lines changed:

+ with Reserved Font Name Nanum, Naver Nanum, NanumGothic, Naver NanumGothic, NanumMyeongjo,\n

+ Naver NanumMyeongjo, NanumBrush, Naver NanumBrush, NanumPen, Naver NanumPen\n

+ \n

- This license is copied below, and is also available with a FAQ at:\n

+ This license is copied below, and is also available with a FAQ at: https://openfontlicense.org\n

- https://openfontlicense.org\n

+ \n

+ SIL OPEN FONT LICENSE\n

+ Version 1.1 - 26 February 2007\n

+ \n

+ PREAMBLE\n

+ The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects,\n

+ to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework\n

+ in which fonts may be shared and improved in partnership with others.\n

+ \n

+ The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold\n

+ by themselves.\n

+ The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided\n

+ that any reserved names are not used by derivative works.\n

+ The fonts and derivatives, however, cannot be released under any other type of license.\n

+ The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.\n

- -----------------------------------------------------------\n

- SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007\n

- -----------------------------------------------------------\n

- \n

- PREAMBLE\n

- The goals of the Open Font License (OFL) are to stimulate worldwide\n

- development of collaborative font projects, to support the font creation\n

- efforts of academic and linguistic communities, and to provide a free and\n

- open framework in which fonts may be shared and improved in partnership\n

- with others.\n

- \n

- The OFL allows the licensed fonts to be used, studied, modified and\n

- redistributed freely as long as they are not sold by themselves. The\n

- fonts, including any derivative works, can be bundled, embedded,\n

- redistributed and/or sold with any software provided that any reserved\n

- names are not used by derivative works. The fonts and derivatives,\n

- however, cannot be released under any other type of license. The\n

- requirement for fonts to remain under this license does not apply\n

- to any document created using the fonts or their derivatives.\n

+ "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such.\n

- "Font Software" refers to the set of files released by the Copyright\n

- Holder(s) under this license and clearly marked as such. This may\n

- include source files, build scripts and documentation.\n

+ This may include source files, build scripts and documentation.\n

- "Reserved Font Name" refers to any names specified as such after the\n

+ "Reserved Font Name" refers to any names specified as such after the copyright statement(s).\n

- copyright statement(s).\n

- "Original Version" refers to the collection of Font Software components as\n

+ "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).\n

- distributed by the Copyright Holder(s).\n

- "Modified Version" refers to any derivative made by adding to, deleting,\n

+ "Modified Version" refers to any derivative made by adding to, deleting, or substituting ? in part or in whole ?\n

- or substituting -- in part or in whole -- any of the components of the\n

- Original Version, by changing formats or by porting the Font Software to a\n

+ any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.\n

- new environment.\n

- "Author" refers to any designer, engineer, programmer, technical\n

- writer or other person who contributed to the Font Software.\n

+ "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.\n

+ \n

+ Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge,\n

+ embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:\n

- Permission is hereby granted, free of charge, to any person obtaining\n

- a copy of the Font Software, to use, study, copy, merge, embed, modify,\n

- redistribute, and sell modified and unmodified copies of the Font\n

- Software, subject to the following conditions:\n

- 1) Neither the Font Software nor any of its individual components,\n

+ 1) Neither the Font Software nor any of its individual components,in Original or Modified Versions,\n

- in Original or Modified Versions, may be sold by itself.\n

+ may be sold by itself.\n

- 2) Original or Modified Versions of the Font Software may be bundled,\n

+ 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software,\n

+ provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files,\n

+ human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields\n

+ can be easily viewed by the user.\n

- redistributed and/or sold with any software, provided that each copy\n

- contains the above copyright notice and this license. These can be\n

- included either as stand-alone text files, human-readable headers or\n

- in the appropriate machine-readable metadata fields within text or\n

- binary files as long as those fields can be easily viewed by the user.\n

- 3) No Modified Version of the Font Software may use the Reserved Font\n

+ 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written\n

+ permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented\n

+ to the users.\n

- Name(s) unless explicit written permission is granted by the corresponding\n

- Copyright Holder. This restriction only applies to the primary font name as\n

- presented to the users.\n

+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise\n

+ any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit\n

+ written permission.\n

- 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font\n

- Software shall not be used to promote, endorse or advertise any\n

- Modified Version, except to acknowledge the contribution(s) of the\n

- Copyright Holder(s) and the Author(s) or with their explicit written\n

- permission.\n

+ 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed\n

+ under any other license. The requirement for fonts to remain under this license does not apply to any document created using\n

- 5) The Font Software, modified or unmodified, in part or in whole,\n

- must be distributed entirely under this license, and must not be\n

- distributed under any other license. The requirement for fonts to\n

- remain under this license does not apply to any document created\n

- using the Font Software.\n

+ the Font Software.\n

+ \n

+ \n

- This license becomes null and void if any of the above conditions are\n

+ This license becomes null and void if any of the above conditions are not met.\n

- not met.\n

+ \n

+ \n

- THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\n

+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n

+ INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT.\n

- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\n

- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\n

- OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE\n

- COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n

+ IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n

+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE\n

- INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\n

- DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n

- FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM\n

- OTHER DEALINGS IN THE FONT SOFTWARE.

+ OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

[code: incorrect-ofl-body-text]
⚠️ WARN Check the direction of the outermost contour in each glyph
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* .notdef#11638 (U+00AD) has a counter-clockwise outer contour

* .notdef#2 (U+201F) has a counter-clockwise outer contour

* .notdef#2 (U+201F) has a counter-clockwise outer contour

* .notdef#52 (U+2253) has a counter-clockwise outer contour

* .notdef#52 (U+2253) has a counter-clockwise outer contour

* .notdef#52 (U+2253) has a counter-clockwise outer contour

* .notdef#52 (U+2253) has a counter-clockwise outer contour

* backslash (U+005C) has a counter-clockwise outer contour

* brokenbar (U+00A6) has a counter-clockwise outer contour

* brokenbar (U+00A6) has a counter-clockwise outer contour

* logicalnot (U+00AC) has a counter-clockwise outer contour

* quotereversed (U+201B) has a counter-clockwise outer contour

[code: ccw-outer-contour]

⚠️ WARN Do outlines contain any jaggy segments?
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* .notdef#12 (U+207E): B<<53.5,370.0>-<33.0,353.0>-<25.0,358.0>>/L<<25.0,358.0>--<26.0,357.0>> = 12.994616791916483

* .notdef#1377 (U+AFF2): L<<356.0,650.0>--<356.0,651.0>>/B<<356.0,651.0>-<351.0,620.0>-<345.5,593.0>> = 9.162347045721706

* .notdef#1378 (U+AFF3): L<<356.0,650.0>--<356.0,651.0>>/B<<356.0,651.0>-<351.0,620.0>-<345.5,593.0>> = 9.162347045721706

* .notdef#1380 (U+AFF5): L<<356.0,650.0>--<356.0,651.0>>/B<<356.0,651.0>-<351.0,620.0>-<345.5,593.0>> = 9.162347045721706

* .notdef#1382 (U+AFF7): L<<356.0,650.0>--<356.0,651.0>>/B<<356.0,651.0>-<351.0,620.0>-<345.5,593.0>> = 9.162347045721706

* .notdef#1394 (U+B003): L<<356.0,650.0>--<356.0,651.0>>/B<<356.0,651.0>-<351.0,620.0>-<345.5,593.0>> = 9.162347045721706

* .notdef#1397 (U+B006): L<<356.0,650.0>--<356.0,651.0>>/B<<356.0,651.0>-<351.0,620.0>-<345.5,593.0>> = 9.162347045721706

* .notdef#1399 (U+B008): L<<356.0,650.0>--<356.0,651.0>>/B<<356.0,651.0>-<351.0,620.0>-<345.5,593.0>> = 9.162347045721706

* .notdef#1401 (U+B00A): L<<356.0,650.0>--<356.0,651.0>>/B<<356.0,651.0>-<351.0,620.0>-<345.5,593.0>> = 9.162347045721706

* .notdef#173 (U+260F): B<<596.0,553.0>-<595.0,553.0>-<595.0,554.0>>/L<<595.0,554.0>--<584.0,481.0>> = 8.569141879837645

* 55 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:

* .notdef#10009 (U+D1AA): L<<613.0,195.0>--<614.0,3.0>>

* .notdef#10009 (U+D1AA): L<<716.0,-13.0>--<717.0,199.0>>

* .notdef#10013 (U+D1AE): L<<689.0,-20.0>--<690.0,104.0>>

* .notdef#10037 (U+D1C6): L<<593.0,204.0>--<594.0,3.0>>

* .notdef#10037 (U+D1C6): L<<695.0,-14.0>--<696.0,208.0>>

* .notdef#10041 (U+D1CA): L<<625.0,95.0>--<626.0,-25.0>>

* .notdef#10041 (U+D1CA): L<<689.0,-20.0>--<690.0,113.0>>

* .notdef#10061 (U+D1DE): L<<589.0,395.0>--<588.0,683.0>>

* .notdef#10061 (U+D1DE): L<<680.0,683.0>--<681.0,526.0>>

* .notdef#10061 (U+D1DE): L<<771.0,532.0>--<770.0,726.0>>

* 1695 more.

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

[code: found-semi-vertical]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table.
  • ⚠️ WARN

    This font file does not have a 'meta' table.


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths
  • ℹ️ INFO

    ofl/nanummyeongjo


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

    Hinting filesize impact:

ofl/nanummyeongjo/NanumMyeongjo-Bold.ttf
Dehinted Size 1.9Mb
Hinted Size 2.9Mb
Increase 1.0Mb
Change 53.7 %
[code: size-impact]
ℹ️ INFO Font contains all required tables?
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[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 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 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 2.031;PS 1;hotconv 1.0.56;makeotf.lib2.0.21325', 'Version 2.031;PS 1;hotconv 1.0.56;makeotf.lib2.0.21325']


    [code: version-not-detected]
[42] NanumMyeongjo-Regular.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs.
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+0111: LATIN SMALL LETTER D WITH STROKE U+0110: LATIN CAPITAL LETTER D WITH STROKE
[code: missing-case-counterparts]
🔥 FAIL Checking Vertical Metric Linegaps.
  • 🔥 FAIL

    hhea lineGap is not equal to 0.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, all messages from this check are considered FAILs.

[code: hhea]
🔥 FAIL Font contains '.notdef' as its first glyph?
  • 🔥 FAIL

    The '.notdef' glyph should contain a drawing, but it is blank.


    [code: notdef-is-blank]
🔥 FAIL Ensure smart dropout control is enabled in "prep" table instructions.
  • 🔥 FAIL

    The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script.


    [code: lacks-smart-dropout]
🔥 FAIL Font contains unique glyph names?
  • 🔥 FAIL

    These glyph names occur more than once: ['.notdef']


    [code: duplicated-glyph-names]
🔥 FAIL Are there unwanted tables?
  • 🔥 FAIL

    The following unwanted font tables were found:

  • DSIG - This font has a digital signature (DSIG table) which is only required - even if only a placeholder - on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table.

They can be removed with the 'fix-unwanted-tables' script provided by gftools.

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

    Please add a family.source.repository_url entry.


    [code: lacks-repo-url]
🔥 FAIL METADATA.pb font.filename and font.post_script_name fields have equivalent values?
  • 🔥 FAIL

    METADATA.pb font filename = "NanumMyeongjo-Regular.ttf" does not match post_script_name="NanumMyeongjo".


    [code: mismatch]
🔥 FAIL METADATA.pb weight matches postScriptName for static fonts.
  • 🔥 FAIL

    METADATA.pb: Mismatch between postScriptName ("NanumMyeongjo") and weight value (400). The name must be ended with "Regular" or "Italic".

🔥 FAIL METADATA.pb font.name and font.full_name fields match the values declared on the name table?
  • 🔥 FAIL

    METADATA.pb Family name "Nanum Myeongjo" does not match name table entry "NanumMyeongjo"!


    [code: familyname-mismatch]
🔥 FAIL METADATA.pb font.name value should be same as the family name declared on the name table.
  • 🔥 FAIL

    Unmatched familyname in font: TTF has familyname = "NanumMyeongjo" while METADATA.pb has font.name = "Nanum Myeongjo".


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

    No GF glyphset was found to be supported >80%, so language shaping support couldn't get checked.


    [code: no-glyphset-supported]
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo 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]
🔥 FAIL Check family name for GF Guide compliance.
  • 🔥 FAIL

    "NanumMyeongjo" is a CamelCased name. To solve this, simply use spaces instead in the font name.


    [code: camelcase]
🔥 FAIL Copyright notices match canonical pattern in fonts
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright © 2010 NHN Corporation. All rights reserved. Font designed by FONTRIX."

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string.
  • 🔥 FAIL

    First line in license file is:

"copyright (c) 2010, nhn corporation (http://www.nhncorp.com),"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Check copyright namerecords match license file.
  • 🔥 FAIL

    License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 1 (MACINTOSH) is not specified for that. Value was: "NHN Corporation" Must be changed to "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://openfontlicense.org"


    [code: wrong]

  • 🔥 FAIL

    License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 3 (WINDOWS) is not specified for that. Value was: "NHN Corporation" Must be changed to "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://openfontlicense.org"


    [code: wrong]

🔥 FAIL Check font names are correct
  • 🔥 FAIL

    Font names are incorrect:

nameID current expected
Family Name NanumMyeongjo NanumMyeongjo
Subfamily Name Regular Regular
Full Name NanumMyeongjo NanumMyeongjo Regular
Postscript Name NanumMyeongjo NanumMyeongjo-Regular
Typographic Family Name NanumMyeongjo N/A
Typographic Subfamily Name Regular N/A
[code: bad-names]
  • ⚠️ WARN

    Regular missing from full name


    [code: lacks-regular]
🔥 FAIL Check Google Fonts glyph coverage.
  • 🔥 FAIL

    Missing required codepoints:

- 0x2212 (MINUS SIGN)

[code: missing-codepoints]

⚠️ 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: .notdef#11638	Contours detected: 1	Expected: 0
  • Glyph name: .notdef#30 Contours detected: 4 Expected: 3

  • Glyph name: .notdef#31 Contours detected: 4 Expected: 3

  • Glyph name: .notdef#32 Contours detected: 4 Expected: 3

  • Glyph name: .notdef#33 Contours detected: 4 Expected: 3


[code: contour-count]

⚠️ WARN Ensure files are not too large.
  • ⚠️ WARN

    Font file is 2.9Mb; ideally it should be less than 1.0Mb


    [code: large-font]
⚠️ WARN Check math signs have the same width.
  • ⚠️ WARN

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

Width = 654: logicalnot, plus, equal

Width = 561: less, greater

[code: width-outliers]
⚠️ WARN Does the font contain a soft hyphen?
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


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

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

- idotless

[code: unreachable-glyphs]

⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
  • ⚠️ WARN

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


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

    It seems that Sandoll Communication 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+0111 LATIN SMALL LETTER D WITH STROKE: try adding one of: vietnamese, latin-ext
  • U+0126 LATIN CAPITAL LETTER H WITH STROKE: try adding latin-ext
  • U+0127 LATIN SMALL LETTER H WITH STROKE: try adding latin-ext
  • U+0132 LATIN CAPITAL LIGATURE IJ: try adding latin-ext
  • U+0133 LATIN SMALL LIGATURE IJ: try adding latin-ext
  • U+0138 LATIN SMALL LETTER KRA: try adding latin-ext
  • U+013F LATIN CAPITAL LETTER L WITH MIDDLE DOT: try adding latin-ext
  • U+0140 LATIN SMALL LETTER L WITH MIDDLE DOT: try adding latin-ext
  • U+0141 LATIN CAPITAL LETTER L WITH STROKE: try adding latin-ext
  • U+0142 LATIN SMALL LETTER L WITH STROKE: try adding latin-ext 396 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: korean, latin, menu

[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 Check OFL body text is correct.

Lines changed:

+ with Reserved Font Name Nanum, Naver Nanum, NanumGothic, Naver NanumGothic, NanumMyeongjo,\n

+ Naver NanumMyeongjo, NanumBrush, Naver NanumBrush, NanumPen, Naver NanumPen\n

+ \n

- This license is copied below, and is also available with a FAQ at:\n

+ This license is copied below, and is also available with a FAQ at: https://openfontlicense.org\n

- https://openfontlicense.org\n

+ \n

+ SIL OPEN FONT LICENSE\n

+ Version 1.1 - 26 February 2007\n

+ \n

+ PREAMBLE\n

+ The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects,\n

+ to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework\n

+ in which fonts may be shared and improved in partnership with others.\n

+ \n

+ The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold\n

+ by themselves.\n

+ The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided\n

+ that any reserved names are not used by derivative works.\n

+ The fonts and derivatives, however, cannot be released under any other type of license.\n

+ The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.\n

- -----------------------------------------------------------\n

- SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007\n

- -----------------------------------------------------------\n

- \n

- PREAMBLE\n

- The goals of the Open Font License (OFL) are to stimulate worldwide\n

- development of collaborative font projects, to support the font creation\n

- efforts of academic and linguistic communities, and to provide a free and\n

- open framework in which fonts may be shared and improved in partnership\n

- with others.\n

- \n

- The OFL allows the licensed fonts to be used, studied, modified and\n

- redistributed freely as long as they are not sold by themselves. The\n

- fonts, including any derivative works, can be bundled, embedded,\n

- redistributed and/or sold with any software provided that any reserved\n

- names are not used by derivative works. The fonts and derivatives,\n

- however, cannot be released under any other type of license. The\n

- requirement for fonts to remain under this license does not apply\n

- to any document created using the fonts or their derivatives.\n

+ "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such.\n

- "Font Software" refers to the set of files released by the Copyright\n

- Holder(s) under this license and clearly marked as such. This may\n

- include source files, build scripts and documentation.\n

+ This may include source files, build scripts and documentation.\n

- "Reserved Font Name" refers to any names specified as such after the\n

+ "Reserved Font Name" refers to any names specified as such after the copyright statement(s).\n

- copyright statement(s).\n

- "Original Version" refers to the collection of Font Software components as\n

+ "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).\n

- distributed by the Copyright Holder(s).\n

- "Modified Version" refers to any derivative made by adding to, deleting,\n

+ "Modified Version" refers to any derivative made by adding to, deleting, or substituting ? in part or in whole ?\n

- or substituting -- in part or in whole -- any of the components of the\n

- Original Version, by changing formats or by porting the Font Software to a\n

+ any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.\n

- new environment.\n

- "Author" refers to any designer, engineer, programmer, technical\n

- writer or other person who contributed to the Font Software.\n

+ "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.\n

+ \n

+ Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge,\n

+ embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:\n

- Permission is hereby granted, free of charge, to any person obtaining\n

- a copy of the Font Software, to use, study, copy, merge, embed, modify,\n

- redistribute, and sell modified and unmodified copies of the Font\n

- Software, subject to the following conditions:\n

- 1) Neither the Font Software nor any of its individual components,\n

+ 1) Neither the Font Software nor any of its individual components,in Original or Modified Versions,\n

- in Original or Modified Versions, may be sold by itself.\n

+ may be sold by itself.\n

- 2) Original or Modified Versions of the Font Software may be bundled,\n

+ 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software,\n

+ provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files,\n

+ human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields\n

+ can be easily viewed by the user.\n

- redistributed and/or sold with any software, provided that each copy\n

- contains the above copyright notice and this license. These can be\n

- included either as stand-alone text files, human-readable headers or\n

- in the appropriate machine-readable metadata fields within text or\n

- binary files as long as those fields can be easily viewed by the user.\n

- 3) No Modified Version of the Font Software may use the Reserved Font\n

+ 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written\n

+ permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented\n

+ to the users.\n

- Name(s) unless explicit written permission is granted by the corresponding\n

- Copyright Holder. This restriction only applies to the primary font name as\n

- presented to the users.\n

+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise\n

+ any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit\n

+ written permission.\n

- 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font\n

- Software shall not be used to promote, endorse or advertise any\n

- Modified Version, except to acknowledge the contribution(s) of the\n

- Copyright Holder(s) and the Author(s) or with their explicit written\n

- permission.\n

+ 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed\n

+ under any other license. The requirement for fonts to remain under this license does not apply to any document created using\n

- 5) The Font Software, modified or unmodified, in part or in whole,\n

- must be distributed entirely under this license, and must not be\n

- distributed under any other license. The requirement for fonts to\n

- remain under this license does not apply to any document created\n

- using the Font Software.\n

+ the Font Software.\n

+ \n

+ \n

- This license becomes null and void if any of the above conditions are\n

+ This license becomes null and void if any of the above conditions are not met.\n

- not met.\n

+ \n

+ \n

- THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\n

+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n

+ INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT.\n

- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\n

- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\n

- OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE\n

- COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n

+ IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n

+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE\n

- INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\n

- DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n

- FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM\n

- OTHER DEALINGS IN THE FONT SOFTWARE.

+ OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

[code: incorrect-ofl-body-text]
⚠️ WARN Check the direction of the outermost contour in each glyph
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* .notdef#11638 (U+00AD) has a counter-clockwise outer contour

* .notdef#2 (U+201F) has a counter-clockwise outer contour

* .notdef#2 (U+201F) has a counter-clockwise outer contour

* backslash (U+005C) has a counter-clockwise outer contour

* brokenbar (U+00A6) has a counter-clockwise outer contour

* brokenbar (U+00A6) has a counter-clockwise outer contour

* logicalnot (U+00AC) has a counter-clockwise outer contour

* quotereversed (U+201B) has a counter-clockwise outer contour

[code: ccw-outer-contour]

⚠️ WARN Do outlines contain any jaggy segments?
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* .notdef#10531 (U+D3B4): B<<388.5,230.0>-<425.0,233.0>-<461.0,238.0>>/L<<461.0,238.0>--<442.0,237.0>> = 4.894375198775078

* .notdef#1406 (U+B00F): B<<590.5,440.5>-<503.0,427.0>-<420.0,417.0>>/L<<420.0,417.0>--<424.0,417.0>> = 6.869992308214263

* .notdef#1423 (U+B020): B<<590.5,440.5>-<503.0,427.0>-<420.0,417.0>>/L<<420.0,417.0>--<424.0,417.0>> = 6.869992308214263

* .notdef#1425 (U+B022): B<<590.5,440.5>-<503.0,427.0>-<420.0,417.0>>/L<<420.0,417.0>--<424.0,417.0>> = 6.869992308214263

* .notdef#1427 (U+B024): B<<590.5,440.5>-<503.0,427.0>-<420.0,417.0>>/L<<420.0,417.0>--<424.0,417.0>> = 6.869992308214263

* .notdef#1429 (U+B026): B<<590.5,440.5>-<503.0,427.0>-<420.0,417.0>>/L<<420.0,417.0>--<424.0,417.0>> = 6.869992308214263

* .notdef#175 (U+261D): B<<436.5,503.0>-<437.0,486.0>-<438.0,476.0>>/B<<438.0,476.0>-<440.0,498.0>-<449.0,519.0>> = 10.905022045234459

* .notdef#177 (U+261F): B<<449.0,183.5>-<440.0,204.0>-<437.0,227.0>>/B<<437.0,227.0>-<436.0,216.0>-<435.5,199.0>> = 12.625836878907304

* .notdef#178 (U+262F): B<<846.0,360.0>-<851.0,322.0>-<843.0,288.0>>/B<<843.0,288.0>-<850.0,311.0>-<852.0,332.0>> = 3.686993148959687

* .notdef#40 (U+2222): L<<513.0,642.0>--<511.0,684.0>>/B<<511.0,684.0>-<511.0,683.0>-<522.5,676.5>> = 2.726310993906212

* 17 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:

* .notdef#10009 (U+D1AA): L<<596.0,207.0>--<597.0,0.0>>

* .notdef#10009 (U+D1AA): L<<734.0,-25.0>--<735.0,212.0>>

* .notdef#10013 (U+D1AE): L<<612.0,87.0>--<613.0,-36.0>>

* .notdef#10013 (U+D1AE): L<<706.0,-32.0>--<707.0,104.0>>

* .notdef#10037 (U+D1C6): L<<569.0,204.0>--<570.0,0.0>>

* .notdef#10037 (U+D1C6): L<<715.0,-25.0>--<716.0,209.0>>

* .notdef#10041 (U+D1CA): L<<608.0,87.0>--<609.0,-35.0>>

* .notdef#10041 (U+D1CA): L<<700.0,-32.0>--<701.0,104.0>>

* .notdef#10065 (U+D1E2): L<<631.0,188.0>--<632.0,0.0>>

* .notdef#10065 (U+D1E2): L<<776.0,-25.0>--<777.0,194.0>>

* 1632 more.

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

[code: found-semi-vertical]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table.
  • ⚠️ WARN

    This font file does not have a 'meta' table.


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths
  • ℹ️ INFO

    ofl/nanummyeongjo


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

    Hinting filesize impact:

ofl/nanummyeongjo/NanumMyeongjo-Regular.ttf
Dehinted Size 1.8Mb
Hinted Size 2.9Mb
Increase 1.1Mb
Change 58.2 %
[code: size-impact]
ℹ️ INFO Font contains all required tables?
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[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 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 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 2.031;PS 1;hotconv 1.0.56;makeotf.lib2.0.21325', 'Version 2.031;PS 1;hotconv 1.0.56;makeotf.lib2.0.21325']


    [code: version-not-detected]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 58 47 189 25 376 0
0% 0% 8% 7% 27% 4% 54% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

@emmamarichal
Copy link
Collaborator

Thank you @simoncozens!

Just want to confirm with you that we have the right name table since it changed a bit from the API version:
Screenshot 2024-12-11 at 15 24 35

@simoncozens
Copy link
Collaborator Author

This is fine. It looks like the subsetter is stripping out a bunch of name table entries for different platform/encoding/language combinations and only keeping the most common one (Windows/Unicode/English); you will see the same thing if you compare the API version and the main branch version.

@emmamarichal emmamarichal added the I Small Fix bugs fixed but nothing added label Dec 11, 2024
@emmamarichal emmamarichal merged commit 08c68d8 into main Dec 11, 2024
8 of 9 checks passed
@emmamarichal emmamarichal deleted the hotfix-nanummyeongjo branch December 11, 2024 16:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I Small Fix bugs fixed but nothing added
Projects
Status: In Dev / PR Merged
Development

Successfully merging this pull request may close these issues.

2 participants