googlefonts / geologica

SIL Open Font License 1.1
47 stars 2 forks source link

Geologica first FontBakery reports #3

Closed vv-monsalve closed 3 years ago

vv-monsalve commented 3 years ago

After running the first Font Bakery checks on the Family to assess its current status, the Fails and Warn reported on both in Geologica and GeologicaSharp are the following:

🔥 FAIL: PPEM must be an integer on hinted fonts. * [com.google.fonts/check/integer_ppem_if_hinted](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/integer_ppem_if_hinted)
--- Rationale ---

Hinted fonts must have head table flag bit 3 set.

Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.

Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;

* 🔥 **FAIL** This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value. This can be accomplished by using the 'gftools fix-hinting' command. # create virtualenvpython3 -m venv venv # activate virtualenvsource venv/bin/activate # install gftoolspip install git+https://www.github.com/googlefonts/tools [code: bad-flags]
🔥 FAIL: Checking OS/2 usWinAscent & usWinDescent. * [com.google.fonts/check/family/win_ascent_and_descent](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/universal.html#com.google.fonts/check/family/win_ascent_and_descent)
--- Rationale ---

A font's winAscent and winDescent values should be greater than the head
table's yMax, abs(yMin) values. If they are less than these values, clipping
can occur on Windows platforms
(https://github.com/RedHatBrand/Overpass/issues/33).

If the font includes tall/deep writing systems such as Arabic or Devanagari,
the winAscent and winDescent can be greater than the yMax and abs(yMin) to
accommodate vowel marks.

When the win Metrics are significantly greater than the upm, the linespacing
can appear too loose. To counteract this, enabling the OS/2 fsSelection bit 7
(Use_Typo_Metrics), will force Windows to use the OS/2 typo values instead.
This means the font developer can control the linespacing with the typo values,
whilst avoiding clipping by setting the win values to values greater than the
yMax and abs(yMin).

* 🔥 **FAIL** OS/2.usWinDescent value should be equal or greater than 891, but got 746 instead. [code: descent]
âš  WARN: Check if each glyph has the recommended amount of contours. * [com.google.fonts/check/contour_count](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/contour_count)
--- Rationale ---

Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only be
constructured in a handful of ways. This means a glyph's contour count will
only differ slightly amongst different fonts, e.g a 'g' could either be 2 or 3
contours, depending on whether its double story or single story.

However, a quotedbl should have 2 contours, unless the font belongs to a
display family.

This check currently does not cover variable fonts because there's plenty of
alternative ways of constructing glyphs with multiple outlines for each feature
in a VarFont. The expected contour count data for this check is currently
optimized for the typical construction of glyphs in static fonts.

* âš  **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: hbar Contours detected: 2 Expected: 1 Glyph name: Tbar Contours detected: 2 Expected: 1 Glyph name: tbar Contours detected: 2 Expected: 1 Glyph name: ohorn Contours detected: 3 Expected: 2 Glyph name: Uhorn Contours detected: 2 Expected: 1 Glyph name: uhorn Contours detected: 2 Expected: 1 Glyph name: uni045B Contours detected: 2 Expected: 1 Glyph name: uni0492 Contours detected: 2 Expected: 1 Glyph name: uni0493 Contours detected: 2 Expected: 1 Glyph name: uni04B0 Contours detected: 2 Expected: 1 Glyph name: uni04B1 Contours detected: 2 Expected: 1 Glyph name: uni1EDB Contours detected: 4 Expected: 3 Glyph name: uni1EDD Contours detected: 4 Expected: 3 Glyph name: uni1EDF Contours detected: 4 Expected: 3 Glyph name: uni1EE1 Contours detected: 4 Expected: 3 Glyph name: uni1EE3 Contours detected: 4 Expected: 3 Glyph name: uni1EE8 Contours detected: 3 Expected: 2 Glyph name: uni1EE9 Contours detected: 3 Expected: 2 Glyph name: uni1EEA Contours detected: 3 Expected: 2 Glyph name: uni1EEB Contours detected: 3 Expected: 2 Glyph name: uni1EEC Contours detected: 3 Expected: 2 Glyph name: uni1EED Contours detected: 3 Expected: 2 Glyph name: uni1EEE Contours detected: 3 Expected: 2 Glyph name: uni1EEF Contours detected: 3 Expected: 2 Glyph name: uni1EF0 Contours detected: 3 Expected: 2 Glyph name: uni1EF1 Contours detected: 3 Expected: 2 Glyph name: colonmonetary Contours detected: 2 Expected: 1 or 3 Glyph name: uni20A6 Contours detected: 2 Expected: 1, 3 or 5 Glyph name: Tbar Contours detected: 2 Expected: 1 Glyph name: Uhorn Contours detected: 2 Expected: 1 Glyph name: colonmonetary Contours detected: 2 Expected: 1 or 3 Glyph name: hbar Contours detected: 2 Expected: 1 Glyph name: ohorn Contours detected: 3 Expected: 2 Glyph name: tbar Contours detected: 2 Expected: 1 Glyph name: uhorn Contours detected: 2 Expected: 1 Glyph name: uni045B Contours detected: 2 Expected: 1 Glyph name: uni0492 Contours detected: 2 Expected: 1 Glyph name: uni0493 Contours detected: 2 Expected: 1 Glyph name: uni04B0 Contours detected: 2 Expected: 1 Glyph name: uni04B1 Contours detected: 2 Expected: 1 Glyph name: uni1EDB Contours detected: 4 Expected: 3 Glyph name: uni1EDD Contours detected: 4 Expected: 3 Glyph name: uni1EDF Contours detected: 4 Expected: 3 Glyph name: uni1EE1 Contours detected: 4 Expected: 3 Glyph name: uni1EE3 Contours detected: 4 Expected: 3 Glyph name: uni1EE8 Contours detected: 3 Expected: 2 Glyph name: uni1EE9 Contours detected: 3 Expected: 2 Glyph name: uni1EEA Contours detected: 3 Expected: 2 Glyph name: uni1EEB Contours detected: 3 Expected: 2 Glyph name: uni1EEC Contours detected: 3 Expected: 2 Glyph name: uni1EED Contours detected: 3 Expected: 2 Glyph name: uni1EEE Contours detected: 3 Expected: 2 Glyph name: uni1EEF Contours detected: 3 Expected: 2 Glyph name: uni1EF0 Contours detected: 3 Expected: 2 Glyph name: uni1EF1 Contours detected: 3 Expected: 2 Glyph name: uni20A6 Contours detected: 2 Expected: 1, 3 or 5 [code: contour-count]

The Warn Check if each glyph has the recommended amount of contours is meant to alert for some glyphs that have an unusual number of contours. Although this could be due to a design decision, this Warns is also helpful to catch any possible unwanted outcome of an interpolation issue.

Please, inspect the listed glyphs on each font to verify everything is as expected.

vv-monsalve commented 3 years ago

Please note that although the FAIL on Vertical Metrics is reported in both subfamilies, the required vale on each one is different, being higher for the Sharp variant. Please use that OS/2.usWinDescent value: 895 for the entire family, to meet the spec on vertical metrics

🔥 FAIL: Checking OS/2 usWinAscent & usWinDescent. * [com.google.fonts/check/family/win_ascent_and_descent](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/universal.html#com.google.fonts/check/family/win_ascent_and_descent)
--- Rationale ---

A font's winAscent and winDescent values should be greater than the head
table's yMax, abs(yMin) values. If they are less than these values, clipping
can occur on Windows platforms
(https://github.com/RedHatBrand/Overpass/issues/33).

If the font includes tall/deep writing systems such as Arabic or Devanagari,
the winAscent and winDescent can be greater than the yMax and abs(yMin) to
accommodate vowel marks.

When the win Metrics are significantly greater than the upm, the linespacing
can appear too loose. To counteract this, enabling the OS/2 fsSelection bit 7
(Use_Typo_Metrics), will force Windows to use the OS/2 typo values instead.
This means the font developer can control the linespacing with the typo values,
whilst avoiding clipping by setting the win values to values greater than the
yMax and abs(yMin).

* 🔥 **FAIL** OS/2.usWinDescent value should be equal or greater than 895, but got 746 instead. [code: descent]
kosbarts commented 3 years ago

The PPEM and WinAscent-WinDescent issues have been fixed. The WARN about the number of contours reports some glyphs that are composed with components. All is good. I think you can close this issue unless there is anything else that, but the new FB reports show no fails.

vv-monsalve commented 3 years ago

Hi @kosbarts, I've pulled the latest files at a686c74 and ran new FB checks. Everything is working well in the statics fonts with 0FB Fails reported. However, the variable font is reporting 3 fails. I'll open a new Issue about them and close this here as this was Static Fonts related.