google / fonts

Font files available from Google Fonts, and a public issue tracker for all things Google Fonts
https://fonts.google.com
17.82k stars 2.6k forks source link

Beiruti: Version 1.10 added #7892

Open yanone opened 5 days ago

yanone commented 5 days ago

Taken from the upstream repo https://github.com/googlefonts/beiruti at commit https://github.com/googlefonts/beiruti/commit/1d848d465d697dc6c61782818a382b80bc78c40c.

Resolves #7625

PR Checklist:

github-actions[bot] commented 5 days ago

FontBakery report

fontbakery version: 0.12.7

Experimental checks

These won't break the CI job for now, but will become effective after some time if nobody raises any concern.

[2] Beiruti[wght].ttf
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
* ⚠️ **WARN**

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

[code: lacks-article]
ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
* ℹ️ **INFO**

Please consider adding a family.minisite_url entry.

[code: lacks-minisite-url]

All other checks

[27] Beiruti[wght].ttf
🔥 FAIL METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
* 🔥 **FAIL**

METADATA.pb font full_name = "Beiruti" does not match post_script_name = "Beiruti-Regular"

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

GF_Latin_Core glyphset:

Language FAIL messages
nl_Latn (Dutch) Shaper didn't attach Acute to J
^ Shaper didn't attach Acute to j
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Vietnamese glyphset:

Language FAIL messages
vi_Latn (Vietnamese) Some mark glyphs were missing: ◌̛
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Arabic_Plus glyphset:

Language FAIL messages
ps_Arab (Pashto) Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0654 to space
^ Shaper didn't attach uni064E to None
^ Shaper didn't attach uni0650 to None
^ Shaper didn't attach uni064F to None
^ Shaper didn't attach uni064B to None
^ Shaper didn't attach uni064D to None
^ Shaper didn't attach uni064C to None
^ Shaper didn't attach uni0651 to None
^ Shaper didn't attach uni0652 to None
^ Shaper didn't attach uni0670 to None
^ Shaper didn't attach uni064E to space
^ Shaper didn't attach uni0650 to space
^ Shaper didn't attach uni064F to space
^ Shaper didn't attach uni064B to space
^ Shaper didn't attach uni064D to space
^ Shaper didn't attach uni064C to space
^ Shaper didn't attach uni0651 to space
^ Shaper didn't attach uni0652 to space
^ Shaper didn't attach uni0670 to space
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Arabic_Plus glyphset:

Language FAIL messages
sd_Arab (Sindhi) Some base glyphs were missing: ڪ
^ Shaper produced a .notdef
^ .fina version of ARABIC LETTER SWASH KAF; both buffers returned .notdef=1+493
^ .medi version of ARABIC LETTER SWASH KAF; both buffers returned space=1+0
^ .init version of ARABIC LETTER SWASH KAF; both buffers returned space=0+0
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
ar_Arab (Arabic) Shaper didn't attach uni0653 to None
^ Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0655 to None
^ Shaper didn't attach uni0653 to space
^ Shaper didn't attach uni0654 to space
^ Shaper didn't attach uni0655 to space
^ Shaper didn't attach uni0670 to space
^ Shaper didn't attach uni064B to space
^ Shaper didn't attach uni064C to space
^ Shaper didn't attach uni064D to space
^ Shaper didn't attach uni064E to space
^ Shaper didn't attach uni064F to space
^ Shaper didn't attach uni0650 to space
^ Shaper didn't attach uni0651 to space
^ Shaper didn't attach uni0652 to space
^ Shaper didn't attach uni0670 to uni0640
^ Shaper didn't attach uni0653 to uni0640
^ Shaper didn't attach uni0654 to uni0640
^ Shaper didn't attach uni0655 to uni0640
^ Shaper didn't attach uni064B to uni0640
^ Shaper didn't attach uni064C to uni0640
^ Shaper didn't attach uni064D to uni0640
^ Shaper didn't attach uni064E to uni0640
^ Shaper didn't attach uni064F to uni0640
^ Shaper didn't attach uni0650 to uni0640
^ Shaper didn't attach uni0651 to uni0640
^ Shaper didn't attach uni0652 to uni0640
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
fa_Arab (Persian) Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0654 to space
[code: failed-language-shaping] * ⚠️ **WARN**

GF_Arabic_Plus glyphset:

Language WARN messages
ms_Arab (Malay (Arabic)) No exemplar glyphs were defined for language Malay (Arabic)
[code: warning-language-shaping] * ⚠️ **WARN**

GF_Arabic_Plus glyphset:

Language WARN messages
sd_Arab (Sindhi) Some auxiliary glyphs were missing: ڪ
[code: warning-language-shaping]
🔥 FAIL Check font names are correct
* 🔥 **FAIL**

Font names are incorrect:

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

Regular missing from full name

[code: lacks-regular]
⚠️ WARN Check mark characters are in GDEF mark glyph class.
* ⚠️ **WARN**

The following mark characters could be in the GDEF mark glyph class: Acute (U+0301), Breve (U+0306), Caron (U+030C), Cedilla (U+0327), Circumflex (U+0302), Comma.high (U+0313), Commaaccent (U+0326), Dieresis (U+0308), Dotaccent (U+0307), Dotbelow (U+0323) and 8 more.

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

[code: mark-chars]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks.
* ⚠️ **WARN**

The following non-mark characters should not be in the GDEF mark glyph class: U+FC5E, U+FC5F, U+FC60, U+FC61, U+FC62 and U+FC63

[code: non-mark-chars]
⚠️ WARN Check accent of Lcaron, dcaron, lcaron, tcaron
* ⚠️ **WARN**

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

[code: decomposed-outline] * ⚠️ **WARN**

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

[code: decomposed-outline] * ⚠️ **WARN**

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

[code: decomposed-outline] * ⚠️ **WARN**

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

[code: decomposed-outline]
⚠️ WARN Detect any interpolation issues in the font.
* ⚠️ **WARN**

Interpolation issues were found in the font:

- Contour 0 point 42 in glyph 'uni2126' has a kink between location wght=200 and location wght=900

- Contour 0 point 23 in glyph 'Gcommaaccent' has a kink between location wght=200 and location wght=900

- Contour 2 start point differs in glyph 'O64C' between location wght=400 and location wght=200

- Contour 2 in glyph 'O64C': becomes underweight between wght=400 and wght=200.

- Contour 3 start point differs in glyph 'O64C' between location wght=400 and location wght=200

- Contour 3 in glyph 'O64C': becomes underweight between wght=400 and wght=200.

- Contour 4 start point differs in glyph 'O64C' between location wght=400 and location wght=200

- Contour 4 in glyph 'O64C': becomes underweight between wght=400 and wght=200.

- Contour 5 start point differs in glyph 'O64C' between location wght=400 and location wght=200

- Contour 5 in glyph 'O64C': becomes underweight between wght=400 and wght=200.

- 49 more.

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

[code: interpolation-issues]
⚠️ WARN Check math signs have the same width.
* ⚠️ **WARN**

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

Width = 683: suchthat, notelement, element

Width = 612: proportional

Width = 929: orthogonal

Width = 1164: angle

Width = 928: uni2237

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

This font has a 'Soft Hyphen' character.

[code: softhyphen]
⚠️ WARN Glyph names are all valid?
* ⚠️ **WARN**

The following glyph names may be too long for some legacy systems which may expect a maximum 31-characters length limit: extendedarabicindicdigitfoururdu.lining and extendedarabicindicdigitsevenurdu.lining

[code: legacy-long-names]
⚠️ WARN Check the direction of the outermost contour in each glyph
* ⚠️ **WARN**

The following glyphs have a counter-clockwise outer contour:

* .notdef has a counter-clockwise outer contour

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

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

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

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

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

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

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

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

* Acircumflex (U+00C2) has a counter-clockwise outer contour

* 1841 more.

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

[code: ccw-outer-contour]
⚠️ WARN Ensure dotted circle glyph is present and can attach marks.
* ⚠️ **WARN**

No dotted circle glyph present

[code: missing-dotted-circle]
⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.
* ⚠️ **WARN**

The dot of soft dotted characters used in orthographies must disappear in the following strings: i̊ i̋ i̓ j̀ j́ j̃ j̄ j̈ į̀ į́ į̂ į̃ į̄ į̌ ḭ̀ ḭ́ ḭ̄ ị̀ ị́ ị̂ ị̃ ị̄

The dot of soft dotted characters should disappear in other cases, for example: i̇ i̒ i̦̇ i̦̊ i̦̋ i̦̒ i̦̓ i̧̇ i̧̊ i̧̋ i̧̒ i̧̓ j̆ j̇ j̉ j̊ j̋ j̒ j̓ j̣̀

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Sar (Latn, 500,000 speakers), Makaa (Latn, 221,000 speakers), Bete-Bendi (Latn, 100,000 speakers), Aghem (Latn, 38,843 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Dan (Latn, 1,099,244 speakers), Nzakara (Latn, 50,000 speakers), Ijo, Southeast (Latn, 2,471,000 speakers), Kom (Latn, 360,685 speakers), Zapotec (Latn, 490,000 speakers), Avokaya (Latn, 100,000 speakers), Vute (Latn, 21,000 speakers), Gulay (Latn, 250,478 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Dii (Latn, 71,000 speakers), Igbo (Latn, 27,823,640 speakers), Nateni (Latn, 100,000 speakers), Basaa (Latn, 332,940 speakers), Bafut (Latn, 158,146 speakers), Mfumte (Latn, 79,000 speakers), Mango (Latn, 77,000 speakers), Ekpeye (Latn, 226,000 speakers), Koonzime (Latn, 40,000 speakers), Southern Kisi (Latn, 360,000 speakers), Ebira (Latn, 2,200,000 speakers), Yala (Latn, 200,000 speakers), Fur (Latn, 1,230,163 speakers), Lugbara (Latn, 2,200,000 speakers), Dutch (Latn, 31,709,104 speakers), Ejagham (Latn, 120,000 speakers), Belarusian (Cyrl, 10,064,517 speakers), Cicipu (Latn, 44,000 speakers), South Central Banda (Latn, 244,000 speakers), Ma’di (Latn, 584,000 speakers), Mundani (Latn, 34,000 speakers), Ngbaka (Latn, 1,020,000 speakers), Navajo (Latn, 166,319 speakers).

[code: soft-dotted]
⚠️ 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+02C7 CARON: try adding one of: canadian-aboriginal, yi, tifinagh
  • U+02C9 MODIFIER LETTER MACRON: not included in any glyphset definition
  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+02DD DOUBLE ACUTE ACCENT: not included in any glyphset definition
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: cherokee, math, coptic, tifinagh
  • U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic
  • U+0307 COMBINING DOT ABOVE: try adding one of: syriac, coptic, canadian-aboriginal, math, malayalam, tai-le, tifinagh, old-permic
  • U+030A COMBINING RING ABOVE: try adding syriac 380 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: arabic, latin, latin-ext, menu, vietnamese

[code: unreachable-subsetting]
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak.
* ⚠️ **WARN**

The last characther on DESCRIPTION.en_us.html is not a line-break. Please add it.

[code: missing-eof-linebreak]
⚠️ WARN Is there kerning info for non-ligated sequences?
* ⚠️ **WARN**

GPOS table lacks kerning info for the following non-ligated sequences:

- f + f

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

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

[code: lacks-caret-pos]
⚠️ WARN Ensure variable fonts include an avar table.
* ⚠️ **WARN**

This variable font does not have an avar table.

[code: missing-avar]
⚠️ 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/beiruti

[code: family-path]
ℹ️ INFO Font contains all required tables?
* ℹ️ **INFO**

This font contains the following optional tables:

- loca

- prep

- GPOS

- GSUB

- gasp
[code: optional-tables]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL?
* ℹ️ **INFO**

Found a git repo URL: https://github.com/googlefonts/beiruti

[code: url-found]
ℹ️ 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 EPAR table present in font?
* ℹ️ **INFO**

EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818

[code: lacks-EPAR]
ℹ️ 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 Show hinting filesize impact.
* ℹ️ **INFO**

Hinting filesize impact:

ofl/beiruti/Beiruti[wght].ttf
Dehinted Size 661.8kb
Hinted Size 661.8kb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font has old ttfautohint applied?
* ℹ️ **INFO**

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

[code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table.
* ℹ️ **INFO**

None of the fonts lack a STAT table.

And these are the most common STAT axis orderings:
('wght', 1)
[code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 3 17 41 10 177 0
0% 0% 1% 7% 17% 4% 71% 0%

Note: The following loglevels were omitted in this report:

emmamarichal commented 5 days ago

@yanone Are we ok with all the interpolations issues? Beiruti[wght].pdf

Example:

Screenshot 2024-06-27 at 14 38 33

https://github.com/google/fonts/assets/64773544/dfcf0409-db41-4618-8a35-44538be20340

emmamarichal commented 5 days ago

@yanone I'm trying to investigate about the full_name thing. I never had that issue yet!

yanone commented 5 days ago

@JuergenWillrodt

Please take a look at this PDF report two comments up from here. It shows kinky mid-way interpolations that Emma found via fonttools.

Personally I think that the dotted circle is never used in practice, so it shouldn't be a problem to have this. If you could fix that, it would still be nice.

Out of the letters I think you should have a look at all the "a" combinations incl "ae". The kink in the counter is relatively prominent if used at large sizes. One of the points changes position between the three masters; moves from the bottom to the left edge of the counter.

The kinks in the other shown letters I personally find so tiny that we can safely ignore them.

Let us know if you want to fix any of those.

yanone commented 5 days ago

@JuergenWillrodt

Please also remove the "Full Name" and "Font Name" fields from the Glyphs sources and then rebuild the UFOs. Those two don't meet our specifications.

Thank you

unnamed