-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
M PLUS Code Latin: Version 1.001; ttfautohint (v1.8.3) added; M PLUS 1 Code: Version 1.001 added #3859
Conversation
As previously mentioned on the other M Plus PR, at the request of the designer, I've modified the vertical metrics of these two fonts to align with the Google standard for Latin (though I did increase the sTypo to 1000 to account for a tall The CJK metrics were too tall for these to be effective coding fonts. |
Fontbakery reportFontbakery version: 0.8.2 [10] MplusCodeLatin[wdth,wght].ttf🔥 FAIL: Checking file is named canonically.--- Rationale --- A font's filename must be composed in the following manner: <familyname>-<stylename>.ttf - Nunito-Regular.ttf, - Oswald-BoldItalic.ttf Variable fonts must list the axis tags in alphabetical order in square brackets and separated by commas: - Roboto[wdth,wght].ttf - Familyname-Italic[wght].ttf
🔥 FAIL: Ensure component transforms do not perform scaling or rotation.--- Rationale --- Some families have glyphs which have been constructed by using transformed components e.g the 'u' being constructed from a flipped 'n'. From a designers point of view, this sounds like a win (less work). However, such approaches can lead to rasterization issues, such as having the 'u' not sitting on the baseline at certain sizes after running the font through ttfautohint. As of July 2019, Marc Foley observed that ttfautohint assigns cvt values to transformed glyphs as if they are not transformed and the result is they render very badly, and that vttLib does not support flipped components. When building the font with fontmake, this problem can be fixed by using the "Decompose Transformed Components" filter.
⚠ WARN: Font has old ttfautohint applied?--- Rationale --- Check if font has been hinted with an outdated version of ttfautohint.
⚠ WARN: A static fonts directory with at least two fonts must accompany variable fonts--- Rationale --- Variable font family directories kept in the google/fonts git repo may include a static/ subdir containing static fonts. These files are meant to be served for users that still lack support for variable fonts in their web browsers.
⚠ WARN: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?--- Rationale --- Google Fonts has a catalog of designers. This check ensures that the online entries of the catalog can be found based on the designer names listed on the METADATA.pb file. It also validates the URLs and file formats are all correctly set.
⚠ WARN: Ensure fonts have ScriptLangTags declared on the 'meta' table.--- Rationale --- The OpenType 'meta' table originated at Apple. Microsoft added it to OT with just two DataMap records: - dlng: comma-separated ScriptLangTags that indicate which scripts, or languages and scripts, with possible variants, the font is designed for - slng: comma-separated ScriptLangTags that indicate which scripts, or languages and scripts, with possible variants, the font supports The slng structure is intended to describe which languages and scripts the font overall supports. For example, a Traditional Chinese font that also contains Latin characters, can indicate Hant,Latn, showing that it supports Hant, the Traditional Chinese variant of the Hani script, and it also supports the Latn script The dlng structure is far more interesting. A font may contain various glyphs, but only a particular subset of the glyphs may be truly "leading" in the design, while other glyphs may have been included for technical reasons. Such a Traditional Chinese font could only list Hant there, showing that it’s designed for Traditional Chinese, but the font would omit Latn, because the developers don’t think the font is really recommended for purely Latin-script use. The tags used in the structures can comprise just script, or also language and script. For example, if a font has Bulgarian Cyrillic alternates in the locl feature for the cyrl BGR OT languagesystem, it could also indicate in dlng explicitly that it supports bul-Cyrl. (Note that the scripts and languages in meta use the ISO language and script codes, not the OpenType ones). This check ensures that the font has the meta table containing the slng and dlng structures. All families in the Google Fonts collection should contain the 'meta' table. Windows 10 already uses it when deciding on which fonts to fall back to. The Google Fonts API and also other environments could use the data for smarter filtering. Most importantly, those entries should be added to the Noto fonts. In the font making process, some environments store this data in external files already. But the meta table provides a convenient way to store this inside the font file, so some tools may add the data, and unrelated tools may read this data. This makes the solution much more portable and universal.
⚠ WARN: Does the font have a DSIG table?--- Rationale --- Microsoft Office 2013 and below products expect fonts to have a digital signature declared in a DSIG table in order to implement OpenType features. The EOL date for Microsoft Office 2013 products is 4/11/2023. This issue does not impact Microsoft Office 2016 and above products. As we approach the EOL date, it is now considered better to completely remove the table. But if you still want your font to support OpenType features on Office 2013, then you may find it handy to add a fake signature on a dummy DSIG table by running one of the helper scripts provided at https://github.com/googlefonts/gftools Reference: https://github.com/googlefonts/fontbakery/issues/1845
⚠ WARN: Check glyphs in mark glyph class are non-spacing.--- Rationale --- Glyphs in the GDEF mark glyph class should be non-spacing. Spacing glyphs in the GDEF mark glyph class may have incorrect anchor positioning that was only intended for building composite glyphs during design.
⚠ WARN: Check mark characters are in GDEF mark glyph class.--- Rationale --- Mark characters should be in the GDEF mark glyph class.
⚠ WARN: Check GDEF mark glyph class doesn't have characters that are not marks.--- Rationale --- Glyphs in the GDEF mark glyph class become non-spacing and may be repositioned if they have mark anchors. Only combining mark glyphs should be in that class. Any non-mark glyph must not be in that class, in particular spacing glyphs.
Summary
Note: The following loglevels were omitted in this report:
|
…8.3) added * M PLUS Code Latin Version 1.002; ttfautohint (v1.8.3) taken from the upstream repo https://github.com/coz-m/MPLUS_FONTS.git at commit coz-m/MPLUS_FONTS@6ee9e7c.
* M PLUS 1 Code Version 1.002 taken from the upstream repo https://github.com/coz-m/MPLUS_FONTS.git at commit coz-m/MPLUS_FONTS@6ee9e7c.
Updated M PLUS 1 Code: Version 1.002 added; M PLUS Code Latin: Version 1.002; ttfautohint (v1.8.3) added9c305a4: [gftools-packager] M PLUS Code Latin: Version 1.002; ttfautohint (v1.8.3) added
a716a14: [gftools-packager] ofl/mpluscodelatin remove METADATA "source". #2587 192e194: [gftools-packager] M PLUS 1 Code: Version 1.002 added
5162e88: [gftools-packager] ofl/mplus1code remove METADATA "source". #2587 |
73454c8
to
5162e88
Compare
I've updated these with the decomposeTransformedComponents filter. |
Fontbakery reportFontbakery version: 0.8.2 [9] MplusCodeLatin[wdth,wght].ttf🔥 FAIL: Checking file is named canonically.--- Rationale --- A font's filename must be composed in the following manner: <familyname>-<stylename>.ttf - Nunito-Regular.ttf, - Oswald-BoldItalic.ttf Variable fonts must list the axis tags in alphabetical order in square brackets and separated by commas: - Roboto[wdth,wght].ttf - Familyname-Italic[wght].ttf
⚠ WARN: Font has old ttfautohint applied?--- Rationale --- Check if font has been hinted with an outdated version of ttfautohint.
⚠ WARN: A static fonts directory with at least two fonts must accompany variable fonts--- Rationale --- Variable font family directories kept in the google/fonts git repo may include a static/ subdir containing static fonts. These files are meant to be served for users that still lack support for variable fonts in their web browsers.
⚠ WARN: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?--- Rationale --- Google Fonts has a catalog of designers. This check ensures that the online entries of the catalog can be found based on the designer names listed on the METADATA.pb file. It also validates the URLs and file formats are all correctly set.
⚠ WARN: Ensure fonts have ScriptLangTags declared on the 'meta' table.--- Rationale --- The OpenType 'meta' table originated at Apple. Microsoft added it to OT with just two DataMap records: - dlng: comma-separated ScriptLangTags that indicate which scripts, or languages and scripts, with possible variants, the font is designed for - slng: comma-separated ScriptLangTags that indicate which scripts, or languages and scripts, with possible variants, the font supports The slng structure is intended to describe which languages and scripts the font overall supports. For example, a Traditional Chinese font that also contains Latin characters, can indicate Hant,Latn, showing that it supports Hant, the Traditional Chinese variant of the Hani script, and it also supports the Latn script The dlng structure is far more interesting. A font may contain various glyphs, but only a particular subset of the glyphs may be truly "leading" in the design, while other glyphs may have been included for technical reasons. Such a Traditional Chinese font could only list Hant there, showing that it’s designed for Traditional Chinese, but the font would omit Latn, because the developers don’t think the font is really recommended for purely Latin-script use. The tags used in the structures can comprise just script, or also language and script. For example, if a font has Bulgarian Cyrillic alternates in the locl feature for the cyrl BGR OT languagesystem, it could also indicate in dlng explicitly that it supports bul-Cyrl. (Note that the scripts and languages in meta use the ISO language and script codes, not the OpenType ones). This check ensures that the font has the meta table containing the slng and dlng structures. All families in the Google Fonts collection should contain the 'meta' table. Windows 10 already uses it when deciding on which fonts to fall back to. The Google Fonts API and also other environments could use the data for smarter filtering. Most importantly, those entries should be added to the Noto fonts. In the font making process, some environments store this data in external files already. But the meta table provides a convenient way to store this inside the font file, so some tools may add the data, and unrelated tools may read this data. This makes the solution much more portable and universal.
⚠ WARN: Does the font have a DSIG table?--- Rationale --- Microsoft Office 2013 and below products expect fonts to have a digital signature declared in a DSIG table in order to implement OpenType features. The EOL date for Microsoft Office 2013 products is 4/11/2023. This issue does not impact Microsoft Office 2016 and above products. As we approach the EOL date, it is now considered better to completely remove the table. But if you still want your font to support OpenType features on Office 2013, then you may find it handy to add a fake signature on a dummy DSIG table by running one of the helper scripts provided at https://github.com/googlefonts/gftools Reference: https://github.com/googlefonts/fontbakery/issues/1845
⚠ WARN: Check glyphs in mark glyph class are non-spacing.--- Rationale --- Glyphs in the GDEF mark glyph class should be non-spacing. Spacing glyphs in the GDEF mark glyph class may have incorrect anchor positioning that was only intended for building composite glyphs during design.
⚠ WARN: Check mark characters are in GDEF mark glyph class.--- Rationale --- Mark characters should be in the GDEF mark glyph class.
⚠ WARN: Check GDEF mark glyph class doesn't have characters that are not marks.--- Rationale --- Glyphs in the GDEF mark glyph class become non-spacing and may be repositioned if they have mark anchors. Only combining mark glyphs should be in that class. Any non-mark glyph must not be in that class, in particular spacing glyphs.
Summary
Note: The following loglevels were omitted in this report:
|
It looks good to me! |
Yes, since these are coding fonts, I think its OK |
As rod mentioned in #3892 chinese subset has invited itself again.. I thought I checked for it but apparently I didn’t catch it. We need a check for that or to refactor add-font |
Dave fixed with b58a08e |
Ah now that I see it in sandbox… @davelab6 is it actually ok that the latin version has Latin in its name? |
Yes, since Unicode Range provides all the scripts available, we can put scripts in the family name. In this case, the M+ project is well known as a JP project, so adding Latin makes sense. |
9481065: [gftools-packager] M PLUS 1 Code: Version 1.001 added
fe9405e: [gftools-packager] ofl/mplus1code remove METADATA "source". #2587
8bb6960: [gftools-packager] M PLUS Code Latin: Version 1.001; ttfautohint (v1.8.3) added
52c6464: [gftools-packager] ofl/mpluscodelatin remove METADATA "source". #2587
Fixes #3374