underlinePosition and underlineThickness in the 'post' table should be consistent with UnderlinePosition and UnderlineThickness in the 'CFF ' table.
Detailed description of the problem
The specification of underlinePosition in 'post' says “The value of the PostScript key may be calculated by subtracting half the underlineThickness from the value of this field.” That is, CFF.UnderlinePosition == post.underlinePosition - post.underlineThickness / 2 by definition.
underlineThickness in 'post' and UnderlineThickness in 'CFF ' are both simply the underline thickness, so they should always equal each other.
Suggested profile
Suggest which profile the check should be added to. The most common are:
[ ] Vendor-specific: Google Fonts
[ ] Vendor-specific: Adobe Fonts
[x] OpenType (requirements imposed by the OpenType specification)
[x] Universal (broadly accepted best practices on the type design community)
[ ] Other:
Suggested result
Which log result level should the check have:
[ ] 🔥 FAIL (An issue that must be corrected for the font to function properly)
[x] ⚠️ WARN (A potential issues that may need to be addressed)
What needs to be checked?
underlinePosition and underlineThickness in the 'post' table should be consistent with UnderlinePosition and UnderlineThickness in the 'CFF ' table.
Detailed description of the problem
The specification of underlinePosition in 'post' says “The value of the PostScript key may be calculated by subtracting half the underlineThickness from the value of this field.” That is,
CFF.UnderlinePosition == post.underlinePosition - post.underlineThickness / 2
by definition.underlineThickness in 'post' and UnderlineThickness in 'CFF ' are both simply the underline thickness, so they should always equal each other.
Suggested profile
Suggest which profile the check should be added to. The most common are:
Suggested result
Which log result level should the check have:
Severity assessment
1 (minor)