[26] PassionsConflictPro.ttfπ₯ FAIL: Checking file is named canonically.
* [com.google.fonts/check/canonical_filename](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/canonical_filename)
--- 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** Style name used in "PassionsConflictPro.ttf" is not canonical. You should rebuild the font using any of the following style names: "Thin", "ExtraLight", "Light", "Regular", "Medium", "SemiBold", "Bold", "ExtraBold", "Black", "Thin Italic", "ExtraLight Italic", "Light Italic", "Italic", "Medium Italic", "SemiBold Italic", "Bold Italic", "ExtraBold Italic", "Black Italic". [code: bad-static-filename]
π₯ FAIL: Checking OS/2 fsType does not impose restrictions.
* [com.google.fonts/check/fstype](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/fstype)
--- Rationale ---
The fsType in the OS/2 table is a legacy DRM-related field. Fonts in the Google
Fonts collection must have it set to zero (also known as "Installable
Embedding"). This setting indicates that the fonts can be embedded in documents
and permanently installed by applications on remote systems.
More detailed info is available at:
https://docs.microsoft.com/en-us/typography/opentype/spec/os2#fstype
* π₯ **FAIL** In this font fsType is set to 4 meaning that:
The font may be embedded, and temporarily loaded on the remote system, but documents that use it must not be editable.
No such DRM restrictions can be enabled on the Google Fonts collection, so the fsType field must be set to zero (Installable Embedding) instead. [code: drm]
π₯ FAIL: Check `Google Fonts Latin Core` glyph coverage.
* [com.google.fonts/check/glyph_coverage](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/glyph_coverage)
--- Rationale ---
Google Fonts expects that fonts in its collection support at least the minimal
set of characters defined in the `GF-latin-core` glyph-set.
* π₯ **FAIL** Missing required codepoints: 0x00A0 (NO-BREAK SPACE) and 0x00AD (SOFT HYPHEN) [code: missing-codepoints]
π₯ FAIL: Substitute copyright, registered and trademark symbols in name table entries.
* [com.google.fonts/check/name/unwanted_chars](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/unwanted_chars)
* π₯ **FAIL** NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars]
* π₯ **FAIL** NAMEID #10 contains symbols that should be replaced by '(c)'. [code: unwanted-chars]
* π₯ **FAIL** NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars]
* π₯ **FAIL** NAMEID #10 contains symbols that should be replaced by '(c)'. [code: unwanted-chars]
π₯ FAIL: Check copyright namerecords match license file.
* [com.google.fonts/check/name/license](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/license)
--- Rationale ---
A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.
The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.
Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
* π₯ **FAIL** License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 1 (MACINTOSH) is not specified for that. Value was: "TypeSETit
End User's License Agreement
Notice to user: By installing this font on your computer, you accept all the terms and conditions of this agreement. If you do not agree with the terms and conditions of this Agreement, destroy the original copies of the Font Software, and cease all use of the Font Software.
This agreement pertains to software program formats which include one or more of the following:
A) "Outline Fonts" (PostScriptTM file for Macintosh) B) "Bitmap Fonts" (related documentation and data which works in combination with the PostScriptTM file) C) "TrueType Fonts" (Suitcase file, or TTF WindowsTM file) D) "OpenType Fonts" (for use on Windows, Macintosh or Linux Operating Systems)
This software contains metric information, digitally encoded machine readable Typeface programs. Listed items A through D underlined above are mutually referred to as "the Font Software." In return for acquiring a license to use the Font Software and documentation, you agree to the following terms and conditions:
1. USAGE. You agree that you will use the the Font Software to reproduce and display typefaces solely for the customary purposes of printing on devices located at a specific and singular local premise. The maximum number of simultaneous users is specified in the applicable receipt.
2. Proprietary Rights and obligations. The structure and organization of the Font Software are the valuable and exclusive property of Robert E. Leuschke and his suppliers and distributors. You will not make nor have made, nor permit to be made, any copies of the Font Software or any portions thereof, except one (1) copy solely for backup purposes or such copies as are necessary for the installation of the Font Software in accordance with the terms of this Agreement. Any copies of the Font Software shall contain the same proprietary notices which are contained in or on the Font Software. You agree not to modify, adapt, translate, manipulate, change, reverse engineer, decompile, disassemble, or create derivative works based upon the design of the Font Software. Trademarks shall be used in accordance with accepted trademark practice, including identification of trademark owners name. a) You may embed copies of the font software into your electronic documents for the purpose of printing and viewing the document. No other embedding rights are implied or permitted under this license. b) Access to the Font Software by third parties via access through internet connection is prohibited, unless a separate written agreement has been negotiated.
3. Assignment. You may not assign your rights under this agreement to a third party. Should you prefer to terminate this Agreement, all copies of the Font Software must be transferred or returned to Robert E. Leuschke, or destroyed. Except as set forth by the above, you may not assign your rights under this Agreement or rent, lease, loan, distribute or otherwise transfer the Font Software. You agree that the Font Software is for use exclusively in accordance with the sovereign laws of the United States of America and will not be shipped, transferred, or exported into any country or used in any manner prohibited by the laws of the United States of America and by the United States Export Administration Act.
4. No Other Rights. Robert E. Leuschke and his suppliers and distributors retain title and ownership of the Font Software, the media upon which it is recorded, and all subsequent copies of the Font Software, regardless of the form or media in or upon which the original and other copies may exist. Except as stated above, this Agreement does not grant you any rights to intellectual property rights in the Font Software. The use of any trademark as herein authorized does not give you any right of ownership in that trademark.
5. Term. This license is effective until terminated. Robert E. Leuschke has the right to terminate your license immediately if you fail to comply with any term of this Agreement. Upon any such termination, you will destroy the original copies of the Font Software, and related documentation and cease all use of the Font Software and trademarks.
6. Limited Warranty. (a) This Limited Warranty and any implied warranties are effective for a period of ninety (90) days from the date of delivery ("Limited Warranty Period") of the Font Software. Evidence of such Limited Warranty Period shall be determined by a copy of your receipt which shall accompany the Font Software. The Font Software shall be free from deliberate errors under normal use and service for a period of ninety (90) days after delivery to you. For the purposes of this agreement, an "error" shall be any flaw in the Font Format which causes improper reproduction when used properly on a computer device. You must do one of the following: Report all errors and return the Font Software to Robert E. Leuschke, or report all errors and destroy any and all of your copies of the Font Software. (b) If the software fails to comply with this warranty, Robert E. Leuschke at his option and discretion, will replace the Font Software media not meeting the warranty. No refunds shall be given for the Font Software. If failure of the Font Software media has resulted from accident, abuse, or misapplication of the product, then Robert E. Leuschke shall not be responsible for the replacement of the Font Software media under this Limited Warranty. (c) Robert E. Leuschke does not and cannot warranty the performance or results you may obtain by using the Font Software or its documentation. The foregoing states the sole and exclusive remedies for Robert E. Leuschke's breach of Warranty. Except for the foregoing Limited Warranty, Robert E. Leuschke makes no Warranties expressed or implied as to non-infringement of third party rights, or fitness for a particular purpose. (d) Some jurisdictions do not allow the exclusion of implied warranties or limitations on how long an implied warranty may last, so the above limitations may not apply to you. This warranty gives you specific legal rights concerning the Font Software and its usage. You may have other rights which vary from state to state and country to country. For further warranty information in regard to your local jurisdiction, contact legal representation in your area.
7. Limit of liability. (a) You further agree that any such legal liabilities incurred by any parties resulting from a default of this Agreement shall be the sole responsibility of your company. (b) In no way will Robert E. Leuschke be liable to you for any consequential or incidental damages, including any lost profits or lost savings, or for any claim by any party. (c) Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so the above limitation or exclusion may not apply to you.
8. Governing Laws. This Agreement will be governed by the laws in force in the State of Missouri, in the United States of America, excluding the application of its conflicts of law rules. This Agreement will not be governed by the United Nations Convention on Contracts for the International Sale of Goods, the application of which is expressly excluded.
9. Entire Agreement. You acknowledge that you have read this agreement, understand it and that it is the complete and exclusive statement of your agreement with Robert E. Leuschke; which supersedes any prior agreement, oral or written, and any other communications between Robert E. Leuschke and you1 relating to the subject matter of this agreement; and that your obligations under this agreement shall inure to the benefit of Robert E. Leuschke's licensors whose rights are licensed under this agreement. No variation of the terms of this agreement will be enforceable against Robert E. Leuschke unless Robert E. Leuschke gives his expressed, Written and signed consent.
10. Commitment. Robert E. Leuschke has made deliberate effort to provide within the Font Software the highest quality possible. Continued effort shall be made in good faith to provide such quality. For specific suggestions as to the improvement of the Font Software, please contact Robert E. Leuschke, at:
114 Long and Winding R" 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://scripts.sil.org/OFL" [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: "TypeSETit
End User's License Agreement
Notice to user: By installing this font on your computer, you accept all the terms and conditions of this agreement. If you do not agree with the terms and conditions of this Agreement, destroy the original copies of the Font Software, and cease all use of the Font Software.
This agreement pertains to software program formats which include one or more of the following:
A) "Outline Fonts" (PostScriptTM file for Macintosh) B) "Bitmap Fonts" (related documentation and data which works in combination with the PostScriptTM file) C) "TrueType Fonts" (Suitcase file, or TTF WindowsTM file) D) "OpenType Fonts" (for use on Windows, Macintosh or Linux Operating Systems)
This software contains metric information, digitally encoded machine readable Typeface programs. Listed items A through D underlined above are mutually referred to as "the Font Software." In return for acquiring a license to use the Font Software and documentation, you agree to the following terms and conditions:
1. USAGE. You agree that you will use the the Font Software to reproduce and display typefaces solely for the customary purposes of printing on devices located at a specific and singular local premise. The maximum number of simultaneous users is specified in the applicable receipt.
2. Proprietary Rights and obligations. The structure and organization of the Font Software are the valuable and exclusive property of Robert E. Leuschke and his suppliers and distributors. You will not make nor have made, nor permit to be made, any copies of the Font Software or any portions thereof, except one (1) copy solely for backup purposes or such copies as are necessary for the installation of the Font Software in accordance with the terms of this Agreement. Any copies of the Font Software shall contain the same proprietary notices which are contained in or on the Font Software. You agree not to modify, adapt, translate, manipulate, change, reverse engineer, decompile, disassemble, or create derivative works based upon the design of the Font Software. Trademarks shall be used in accordance with accepted trademark practice, including identification of trademark owners name. a) You may embed copies of the font software into your electronic documents for the purpose of printing and viewing the document. No other embedding rights are implied or permitted under this license. b) Access to the Font Software by third parties via access through internet connection is prohibited, unless a separate written agreement has been negotiated.
3. Assignment. You may not assign your rights under this agreement to a third party. Should you prefer to terminate this Agreement, all copies of the Font Software must be transferred or returned to Robert E. Leuschke, or destroyed. Except as set forth by the above, you may not assign your rights under this Agreement or rent, lease, loan, distribute or otherwise transfer the Font Software. You agree that the Font Software is for use exclusively in accordance with the sovereign laws of the United States of America and will not be shipped, transferred, or exported into any country or used in any manner prohibited by the laws of the United States of America and by the United States Export Administration Act.
4. No Other Rights. Robert E. Leuschke and his suppliers and distributors retain title and ownership of the Font Software, the media upon which it is recorded, and all subsequent copies of the Font Software, regardless of the form or media in or upon which the original and other copies may exist. Except as stated above, this Agreement does not grant you any rights to intellectual property rights in the Font Software. The use of any trademark as herein authorized does not give you any right of ownership in that trademark.
5. Term. This license is effective until terminated. Robert E. Leuschke has the right to terminate your license immediately if you fail to comply with any term of this Agreement. Upon any such termination, you will destroy the original copies of the Font Software, and related documentation and cease all use of the Font Software and trademarks.
6. Limited Warranty. (a) This Limited Warranty and any implied warranties are effective for a period of ninety (90) days from the date of delivery ("Limited Warranty Period") of the Font Software. Evidence of such Limited Warranty Period shall be determined by a copy of your receipt which shall accompany the Font Software. The Font Software shall be free from deliberate errors under normal use and service for a period of ninety (90) days after delivery to you. For the purposes of this agreement, an "error" shall be any flaw in the Font Format which causes improper reproduction when used properly on a computer device. You must do one of the following: Report all errors and return the Font Software to Robert E. Leuschke, or report all errors and destroy any and all of your copies of the Font Software. (b) If the software fails to comply with this warranty, Robert E. Leuschke at his option and discretion, will replace the Font Software media not meeting the warranty. No refunds shall be given for the Font Software. If failure of the Font Software media has resulted from accident, abuse, or misapplication of the product, then Robert E. Leuschke shall not be responsible for the replacement of the Font Software media under this Limited Warranty. (c) Robert E. Leuschke does not and cannot warranty the performance or results you may obtain by using the Font Software or its documentation. The foregoing states the sole and exclusive remedies for Robert E. Leuschke's breach of Warranty. Except for the foregoing Limited Warranty, Robert E. Leuschke makes no Warranties expressed or implied as to non-infringement of third party rights, or fitness for a particular purpose. (d) Some jurisdictions do not allow the exclusion of implied warranties or limitations on how long an implied warranty may last, so the above limitations may not apply to you. This warranty gives you specific legal rights concerning the Font Software and its usage. You may have other rights which vary from state to state and country to country. For further warranty information in regard to your local jurisdiction, contact legal representation in your area.
7. Limit of liability. (a) You further agree that any such legal liabilities incurred by any parties resulting from a default of this Agreement shall be the sole responsibility of your company. (b) In no way will Robert E. Leuschke be liable to you for any consequential or incidental damages, including any lost profits or lost savings, or for any claim by any party. (c) Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so the above limitation or exclusion may not apply to you.
8. Governing Laws. This Agreement will be governed by the laws in force in the State of Missouri, in the United States of America, excluding the application of its conflicts of law rules. This Agreement will not be governed by the United Nations Convention on Contracts for the International Sale of Goods, the application of which is expressly excluded.
9. Entire Agreement. You acknowledge that you have read this agreement, understand it and that it is the complete and exclusive statement of your agreement with Robert E. Leuschke; which supersedes any prior agreement, oral or written, and any other communications between Robert E. Leuschke and you1 relating to the subject matter of this agreement; and that your obligations under this agreement shall inure to the benefit of Robert E. Leuschke's licensors whose rights are licensed under this agreement. No variation of the terms of this agreement will be enforceable against Robert E. Leuschke unless Robert E. Leuschke gives his expressed, Written and signed consent.
10. Commitment. Robert E. Leuschke has made deliberate effort to provide within the Font Software the highest quality possible. Continued effort shall be made in good faith to provide such quality. For specific suggestions as to the improvement of the Font Software, please contact Robert E. Leuschke, at:
114 Long and Winding R" 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://scripts.sil.org/OFL" [code: wrong]
π₯ FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
* [com.google.fonts/check/name/ascii_only_entries](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/ascii_only_entries)
--- Rationale ---
The OpenType spec requires ASCII for the POSTSCRIPT_NAME (nameID 6).
For COPYRIGHT_NOTICE (nameID 0) ASCII is required because that string should be
the same in CFF fonts which also have this requirement in the OpenType spec.
Note:
A common place where we find non-ASCII strings is on name table entries with
NameID > 18, which are expressly for localising the ASCII-only IDs into Hindi /
Arabic / etc.
--- Rationale ---
This setup is meant to ensure consistent rendering quality for fonts across all
devices (with different rendering/hinting capabilities).
Below is the snippet of instructions we expect to see in the fonts:
B8 01 FF PUSHW 0x01FF
85 SCANCTRL (unconditinally turn on
dropout control mode)
B0 04 PUSHB 0x04
8D SCANTYPE (enable smart dropout control)
"Smart dropout control" means activating rules 1, 2 and 5:
Rule 1: If a pixel's center falls within the glyph outline,
that pixel is turned on.
Rule 2: If a contour falls exactly on a pixel's center,
that pixel is turned on.
Rule 5: If a scan line between two adjacent pixel centers
(either vertical or horizontal) is intersected
by both an on-Transition contour and an off-Transition
contour and neither of the pixels was already turned on
by rules 1 and 2, turn on the pixel which is closer to
the midpoint between the on-Transition contour and
off-Transition contour. This is "Smart" dropout control.
For more detailed info (such as other rules not enabled in this snippet), please
refer to the TrueType Instruction Set documentation.
* π₯ **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: 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 virtualenv
python3 -m venv venv
# activate virtualenv
source venv/bin/activate
# install gftools
pip install git+https://www.github.com/googlefonts/tools [code: bad-flags]
π₯ FAIL: Name table entries should not contain line-breaks.
* [com.google.fonts/check/name/line_breaks](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/line_breaks)
--- Rationale ---
There are some entries on the name table that may include more than one line of
text. The Google Fonts team, though, prefers to keep the name table entries
short and simple without line breaks.
For instance, some designers like to include the full text of a font license in
the "copyright notice" entry, but for the GFonts collection this entry should
only mention year, author and other basic info in a manner enforced by
com.google.fonts/check/font_copyright
* π₯ **FAIL** Name entry LICENSE_DESCRIPTION on platform MACINTOSH contains a line-break. [code: line-break]
* π₯ **FAIL** Name entry LICENSE_DESCRIPTION on platform WINDOWS contains a line-break. [code: line-break]
π₯ FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
* [com.google.fonts/check/os2/use_typo_metrics](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/os2/use_typo_metrics)
--- Rationale ---
All fonts on the Google Fonts collection should have OS/2.fsSelection bit 7
(USE_TYPO_METRICS) set. This requirement is part of the vertical metrics scheme
established as a Google Fonts policy aiming at a common ground supported by all
major font rendering environments.
For more details, read:
https://github.com/googlefonts/gf-docs/blob/main/VerticalMetrics/README.md
Below is the portion of that document that is most relevant to this check:
Use_Typo_Metrics must be enabled. This will force MS Applications to use the
OS/2 Typo values instead of the Win values. By doing this, we can freely set the
Win values to avoid clipping and control the line height with the typo values.
It has the added benefit of future line height compatibility. When a new script
is added, we simply change the Win values to the new yMin and yMax, without
needing to worry if the line height have changed.
* π₯ **FAIL** OS/2.fsSelection bit 7 (USE_TYPO_METRICS) wasNOT set in the following fonts: ['PassionsConflictPro.ttf']. [code: missing-os2-fsselection-bit7]
π₯ 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.usWinAscent value should be equal or greater than 771, but got 661 instead [code: ascent]
π₯ FAIL: Font contains glyphs for whitespace characters?
* [com.google.fonts/check/whitespace_glyphs](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/universal.html#com.google.fonts/check/whitespace_glyphs)
* π₯ **FAIL** Whitespace glyph missing for codepoint 0x00A0. [code: missing-whitespace-glyph-0x00A0]
π₯ FAIL: Does full font name begin with the font family name?
* [com.google.fonts/check/name/match_familyname_fullfont](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/name.html#com.google.fonts/check/name/match_familyname_fullfont)
* π₯ **FAIL** On the 'name' table, the full font name (NameID 4 - FULL_FONT_NAME: 'PassionsConflict Pro') does not begin with font family name (NameID 1 - FONT_FAMILY_NAME: 'PassionsConflictPro') [code: does-not]
π₯ FAIL: Check glyphs do not have components which are themselves components.
* [com.google.fonts/check/glyf_nested_components](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/glyf.html#com.google.fonts/check/glyf_nested_components)
--- Rationale ---
There have been bugs rendering variable fonts with nested components.
Additionally, some static fonts with nested components have been reported to
have rendering and printing issues.
For more info, see:
* https://github.com/googlefonts/fontbakery/issues/2961
* https://github.com/arrowtype/recursive/issues/412
* π₯ **FAIL** The following glyphs have components which themselves are component glyphs:
* uni030C.alt
* uni0303_uni0307
* uni0303_uni0307
* uni0303_uni0304
* uni0303_uni0304
* uni0324
* uni0331
* uni0335
* uni03060301
* uni03060301 and 142 more. [code: found-nested-components]
β WARN: Checking OS/2 achVendID.
* [com.google.fonts/check/vendor_id](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/vendor_id)
--- Rationale ---
Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is stored
in the achVendID field of the OS/2 table.
Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:
https://docs.microsoft.com/en-us/typography/vendors/
This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.
Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.
* β **WARN** OS/2 VendorID is 'UKWN', a font editor default. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
[code: bad]
β WARN: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
* [com.google.fonts/check/gasp](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/gasp)
--- Rationale ---
Traditionally version 0 'gasp' tables were set so that font sizes below 8 ppem
had no grid fitting but did have antialiasing. From 9-16 ppem, just grid
fitting. And fonts above 17ppem had both antialiasing and grid fitting toggled
on. The use of accelerated graphics cards and higher resolution screens make
this approach obsolete. Microsoft's DirectWrite pushed this even further with
much improved rendering built into the OS and apps.
In this scenario it makes sense to simply toggle all 4 flags ON for all font
sizes.
* β **WARN** The gasp table has a range of 7 that may be unneccessary. [code: non-ffff-range]
β 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.
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
* β **WARN** This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
β WARN: Is there kerning info for non-ligated sequences?
* [com.google.fonts/check/kerning_for_non_ligated_sequences](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/kerning_for_non_ligated_sequences)
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
* β **WARN** GPOS table lacks kerning info for the following non-ligated sequences:
- f + f
- f + i
- i + f
- f + l
- l + f
- i + l
[code: lacks-kern-info]
β WARN: Ensure fonts have ScriptLangTags declared on the 'meta' table.
* [com.google.fonts/check/meta/script_lang_tags](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/meta/script_lang_tags)
--- 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** This font file does not have a 'meta' table. [code: lacks-meta-table]
β WARN: Font contains '.notdef' as its first glyph?
* [com.google.fonts/check/mandatory_glyphs](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/universal.html#com.google.fonts/check/mandatory_glyphs)
--- Rationale ---
The OpenType specification v1.8.2 recommends that the first glyph is the
'.notdef' glyph without a codepoint assigned and with a drawing.
https://docs.microsoft.com/en-us/typography/opentype/spec
/recom#glyph-0-the-notdef-glyph
Pre-v1.8, it was recommended that fonts should also contain 'space', 'CR' and
'.null' glyphs. This might have been relevant for MacOS 9 applications.
* β **WARN** Glyph '.notdef' should contain a drawing, but it is empty. [code: empty]
β WARN: Does the font have a DSIG table?
* [com.google.fonts/check/dsig](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/dsig.html#com.google.fonts/check/dsig)
--- 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** This font has a digital signature (DSIG table) which is only required - even if only a dummy placeholder - on old programs like MS Office 2013 in order to work properly.
The current recommendation is to completely remove the DSIG table. [code: found-DSIG]
β WARN: Do any segments have colinear vectors?
* [com.google.fonts/check/outline_colinear_vectors](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/.html#com.google.fonts/check/outline_colinear_vectors)
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
* β **WARN** The following glyphs have colinear vectors:
* B (U+0042): L<<204.0,446.0>--<259.0,456.0>> -> L<<259.0,456.0>--<339.0,469.0>>
* Eng (U+014A): L<<273.0,49.0>--<293.0,91.0>> -> L<<293.0,91.0>--<296.0,97.0>>
* Eng (U+014A): L<<303.0,94.0>--<296.0,79.0>> -> L<<296.0,79.0>--<281.0,48.0>>
* Eng (U+014A): L<<741.0,248.0>--<719.0,187.0>> -> L<<719.0,187.0>--<712.0,167.0>>
* Euro (U+20AC): L<<75.0,193.0>--<53.0,190.0>> -> L<<53.0,190.0>--<42.0,189.0>>
* Hbar (U+0126): L<<505.0,326.0>--<488.0,326.0>> -> L<<488.0,326.0>--<481.0,326.0>>
* K (U+004B): L<<309.0,273.0>--<369.0,411.0>> -> L<<369.0,411.0>--<388.0,451.0>>
* K (U+004B): L<<46.0,97.0>--<44.0,87.0>> -> L<<44.0,87.0>--<42.0,74.0>>
* L (U+004C): L<<395.0,153.0>--<396.0,156.0>> -> L<<396.0,156.0>--<438.0,285.0>>
* Lacute (U+0139): L<<395.0,153.0>--<396.0,156.0>> -> L<<396.0,156.0>--<438.0,285.0>> and 86 more. [code: found-colinear-vectors]
β WARN: Do outlines contain any jaggy segments?
* [com.google.fonts/check/outline_jaggy_segments](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/.html#com.google.fonts/check/outline_jaggy_segments)
--- Rationale ---
This check heuristically detects outline segments which form a particularly
small angle, indicative of an outline error. This may cause false positives in
cases such as extreme ink traps, so should be regarded as advisory and backed up
by manual inspection.
* β **WARN** The following glyphs have jaggy segments:
* AE (U+00C6): B<<624.5,255.5>-<642.0,259.0>-<694.0,270.0>>/B<<694.0,270.0>-<647.0,269.0>-<612.0,291.5>> = 10.725301953315029
* AEacute (U+01FC): B<<624.5,255.5>-<642.0,259.0>-<694.0,270.0>>/B<<694.0,270.0>-<647.0,269.0>-<612.0,291.5>> = 10.725301953315029
* E (U+0045): B<<211.5,255.5>-<229.0,259.0>-<281.0,270.0>>/B<<281.0,270.0>-<234.0,269.0>-<199.0,291.5>> = 10.725301953315029
* Eacute (U+00C9): B<<211.5,255.5>-<229.0,259.0>-<281.0,270.0>>/B<<281.0,270.0>-<234.0,269.0>-<199.0,291.5>> = 10.725301953315029
* Ebreve (U+0114): B<<211.5,255.5>-<229.0,259.0>-<281.0,270.0>>/B<<281.0,270.0>-<234.0,269.0>-<199.0,291.5>> = 10.725301953315029
* Ecaron (U+011A): B<<211.5,255.5>-<229.0,259.0>-<281.0,270.0>>/B<<281.0,270.0>-<234.0,269.0>-<199.0,291.5>> = 10.725301953315029
* Ecircumflex (U+00CA): B<<211.5,255.5>-<229.0,259.0>-<281.0,270.0>>/B<<281.0,270.0>-<234.0,269.0>-<199.0,291.5>> = 10.725301953315029
* Edieresis (U+00CB): B<<211.5,255.5>-<229.0,259.0>-<281.0,270.0>>/B<<281.0,270.0>-<234.0,269.0>-<199.0,291.5>> = 10.725301953315029
* Edotaccent (U+0116): B<<211.5,255.5>-<229.0,259.0>-<281.0,270.0>>/B<<281.0,270.0>-<234.0,269.0>-<199.0,291.5>> = 10.725301953315029
* Egrave (U+00C8): B<<211.5,255.5>-<229.0,259.0>-<281.0,270.0>>/B<<281.0,270.0>-<234.0,269.0>-<199.0,291.5>> = 10.725301953315029 and 20 more. [code: found-jaggy-segments]
β WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
* [com.google.fonts/check/outline_semi_vertical](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/.html#com.google.fonts/check/outline_semi_vertical)
--- Rationale ---
This check detects line segments which are nearly, but not quite, exactly
horizontal or vertical. Sometimes such lines are created by design, but often
they are indicative of a design error.
This check is disabled for italic styles, which often contain nearly-upright
lines.
* β **WARN** The following glyphs have semi-vertical/semi-horizontal lines:
* cent (U+00A2): L<<78.0,117.0>--<79.0,237.0>>
* fi (U+FB01): L<<90.0,174.0>--<213.0,173.0>>
* uni20A9 (U+20A9): L<<716.0,201.0>--<596.0,200.0>>
* uni20A9 (U+20A9): L<<749.0,295.0>--<629.0,294.0>>
* uni27E8 (U+27E8): L<<83.0,241.0>--<82.0,-27.0>> and uni27E9 (U+27E9): L<<140.0,215.0>--<141.0,483.0>> [code: found-semi-vertical]
Summary
π ERROR
π₯ FAIL
β WARN
π€ SKIP
βΉ INFO
π PASS
π DEBUG
0
15
11
111
7
69
0
0%
7%
5%
52%
3%
32%
0%
Note: The following loglevels were omitted in this report:
Fontbakery report
Fontbakery version: 0.8.1
[26] PassionsConflictPro.ttf
π₯ FAIL: Checking file is named canonically.
* [com.google.fonts/check/canonical_filename](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/canonical_filename) * π₯ **FAIL** Style name used in "PassionsConflictPro.ttf" is not canonical. You should rebuild the font using any of the following style names: "Thin", "ExtraLight", "Light", "Regular", "Medium", "SemiBold", "Bold", "ExtraBold", "Black", "Thin Italic", "ExtraLight Italic", "Light Italic", "Italic", "Medium Italic", "SemiBold Italic", "Bold Italic", "ExtraBold Italic", "Black Italic". [code: bad-static-filename]π₯ FAIL: Checking OS/2 fsType does not impose restrictions.
* [com.google.fonts/check/fstype](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/fstype) * π₯ **FAIL** In this font fsType is set to 4 meaning that: The font may be embedded, and temporarily loaded on the remote system, but documents that use it must not be editable. No such DRM restrictions can be enabled on the Google Fonts collection, so the fsType field must be set to zero (Installable Embedding) instead. [code: drm]π₯ FAIL: Check `Google Fonts Latin Core` glyph coverage.
* [com.google.fonts/check/glyph_coverage](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/glyph_coverage) * π₯ **FAIL** Missing required codepoints: 0x00A0 (NO-BREAK SPACE) and 0x00AD (SOFT HYPHEN) [code: missing-codepoints]π₯ FAIL: Substitute copyright, registered and trademark symbols in name table entries.
* [com.google.fonts/check/name/unwanted_chars](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/unwanted_chars) * π₯ **FAIL** NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars] * π₯ **FAIL** NAMEID #10 contains symbols that should be replaced by '(c)'. [code: unwanted-chars] * π₯ **FAIL** NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars] * π₯ **FAIL** NAMEID #10 contains symbols that should be replaced by '(c)'. [code: unwanted-chars]π₯ FAIL: Check copyright namerecords match license file.
* [com.google.fonts/check/name/license](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/license) * π₯ **FAIL** License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 1 (MACINTOSH) is not specified for that. Value was: "TypeSETit End User's License Agreement Notice to user: By installing this font on your computer, you accept all the terms and conditions of this agreement. If you do not agree with the terms and conditions of this Agreement, destroy the original copies of the Font Software, and cease all use of the Font Software. This agreement pertains to software program formats which include one or more of the following: A) "Outline Fonts" (PostScriptTM file for Macintosh) B) "Bitmap Fonts" (related documentation and data which works in combination with the PostScriptTM file) C) "TrueType Fonts" (Suitcase file, or TTF WindowsTM file) D) "OpenType Fonts" (for use on Windows, Macintosh or Linux Operating Systems) This software contains metric information, digitally encoded machine readable Typeface programs. Listed items A through D underlined above are mutually referred to as "the Font Software." In return for acquiring a license to use the Font Software and documentation, you agree to the following terms and conditions: 1. USAGE. You agree that you will use the the Font Software to reproduce and display typefaces solely for the customary purposes of printing on devices located at a specific and singular local premise. The maximum number of simultaneous users is specified in the applicable receipt. 2. Proprietary Rights and obligations. The structure and organization of the Font Software are the valuable and exclusive property of Robert E. Leuschke and his suppliers and distributors. You will not make nor have made, nor permit to be made, any copies of the Font Software or any portions thereof, except one (1) copy solely for backup purposes or such copies as are necessary for the installation of the Font Software in accordance with the terms of this Agreement. Any copies of the Font Software shall contain the same proprietary notices which are contained in or on the Font Software. You agree not to modify, adapt, translate, manipulate, change, reverse engineer, decompile, disassemble, or create derivative works based upon the design of the Font Software. Trademarks shall be used in accordance with accepted trademark practice, including identification of trademark owners name. a) You may embed copies of the font software into your electronic documents for the purpose of printing and viewing the document. No other embedding rights are implied or permitted under this license. b) Access to the Font Software by third parties via access through internet connection is prohibited, unless a separate written agreement has been negotiated. 3. Assignment. You may not assign your rights under this agreement to a third party. Should you prefer to terminate this Agreement, all copies of the Font Software must be transferred or returned to Robert E. Leuschke, or destroyed. Except as set forth by the above, you may not assign your rights under this Agreement or rent, lease, loan, distribute or otherwise transfer the Font Software. You agree that the Font Software is for use exclusively in accordance with the sovereign laws of the United States of America and will not be shipped, transferred, or exported into any country or used in any manner prohibited by the laws of the United States of America and by the United States Export Administration Act. 4. No Other Rights. Robert E. Leuschke and his suppliers and distributors retain title and ownership of the Font Software, the media upon which it is recorded, and all subsequent copies of the Font Software, regardless of the form or media in or upon which the original and other copies may exist. Except as stated above, this Agreement does not grant you any rights to intellectual property rights in the Font Software. The use of any trademark as herein authorized does not give you any right of ownership in that trademark. 5. Term. This license is effective until terminated. Robert E. Leuschke has the right to terminate your license immediately if you fail to comply with any term of this Agreement. Upon any such termination, you will destroy the original copies of the Font Software, and related documentation and cease all use of the Font Software and trademarks. 6. Limited Warranty. (a) This Limited Warranty and any implied warranties are effective for a period of ninety (90) days from the date of delivery ("Limited Warranty Period") of the Font Software. Evidence of such Limited Warranty Period shall be determined by a copy of your receipt which shall accompany the Font Software. The Font Software shall be free from deliberate errors under normal use and service for a period of ninety (90) days after delivery to you. For the purposes of this agreement, an "error" shall be any flaw in the Font Format which causes improper reproduction when used properly on a computer device. You must do one of the following: Report all errors and return the Font Software to Robert E. Leuschke, or report all errors and destroy any and all of your copies of the Font Software. (b) If the software fails to comply with this warranty, Robert E. Leuschke at his option and discretion, will replace the Font Software media not meeting the warranty. No refunds shall be given for the Font Software. If failure of the Font Software media has resulted from accident, abuse, or misapplication of the product, then Robert E. Leuschke shall not be responsible for the replacement of the Font Software media under this Limited Warranty. (c) Robert E. Leuschke does not and cannot warranty the performance or results you may obtain by using the Font Software or its documentation. The foregoing states the sole and exclusive remedies for Robert E. Leuschke's breach of Warranty. Except for the foregoing Limited Warranty, Robert E. Leuschke makes no Warranties expressed or implied as to non-infringement of third party rights, or fitness for a particular purpose. (d) Some jurisdictions do not allow the exclusion of implied warranties or limitations on how long an implied warranty may last, so the above limitations may not apply to you. This warranty gives you specific legal rights concerning the Font Software and its usage. You may have other rights which vary from state to state and country to country. For further warranty information in regard to your local jurisdiction, contact legal representation in your area. 7. Limit of liability. (a) You further agree that any such legal liabilities incurred by any parties resulting from a default of this Agreement shall be the sole responsibility of your company. (b) In no way will Robert E. Leuschke be liable to you for any consequential or incidental damages, including any lost profits or lost savings, or for any claim by any party. (c) Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so the above limitation or exclusion may not apply to you. 8. Governing Laws. This Agreement will be governed by the laws in force in the State of Missouri, in the United States of America, excluding the application of its conflicts of law rules. This Agreement will not be governed by the United Nations Convention on Contracts for the International Sale of Goods, the application of which is expressly excluded. 9. Entire Agreement. You acknowledge that you have read this agreement, understand it and that it is the complete and exclusive statement of your agreement with Robert E. Leuschke; which supersedes any prior agreement, oral or written, and any other communications between Robert E. Leuschke and you1 relating to the subject matter of this agreement; and that your obligations under this agreement shall inure to the benefit of Robert E. Leuschke's licensors whose rights are licensed under this agreement. No variation of the terms of this agreement will be enforceable against Robert E. Leuschke unless Robert E. Leuschke gives his expressed, Written and signed consent. 10. Commitment. Robert E. Leuschke has made deliberate effort to provide within the Font Software the highest quality possible. Continued effort shall be made in good faith to provide such quality. For specific suggestions as to the improvement of the Font Software, please contact Robert E. Leuschke, at: 114 Long and Winding R" 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://scripts.sil.org/OFL" [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: "TypeSETit End User's License Agreement Notice to user: By installing this font on your computer, you accept all the terms and conditions of this agreement. If you do not agree with the terms and conditions of this Agreement, destroy the original copies of the Font Software, and cease all use of the Font Software. This agreement pertains to software program formats which include one or more of the following: A) "Outline Fonts" (PostScriptTM file for Macintosh) B) "Bitmap Fonts" (related documentation and data which works in combination with the PostScriptTM file) C) "TrueType Fonts" (Suitcase file, or TTF WindowsTM file) D) "OpenType Fonts" (for use on Windows, Macintosh or Linux Operating Systems) This software contains metric information, digitally encoded machine readable Typeface programs. Listed items A through D underlined above are mutually referred to as "the Font Software." In return for acquiring a license to use the Font Software and documentation, you agree to the following terms and conditions: 1. USAGE. You agree that you will use the the Font Software to reproduce and display typefaces solely for the customary purposes of printing on devices located at a specific and singular local premise. The maximum number of simultaneous users is specified in the applicable receipt. 2. Proprietary Rights and obligations. The structure and organization of the Font Software are the valuable and exclusive property of Robert E. Leuschke and his suppliers and distributors. You will not make nor have made, nor permit to be made, any copies of the Font Software or any portions thereof, except one (1) copy solely for backup purposes or such copies as are necessary for the installation of the Font Software in accordance with the terms of this Agreement. Any copies of the Font Software shall contain the same proprietary notices which are contained in or on the Font Software. You agree not to modify, adapt, translate, manipulate, change, reverse engineer, decompile, disassemble, or create derivative works based upon the design of the Font Software. Trademarks shall be used in accordance with accepted trademark practice, including identification of trademark owners name. a) You may embed copies of the font software into your electronic documents for the purpose of printing and viewing the document. No other embedding rights are implied or permitted under this license. b) Access to the Font Software by third parties via access through internet connection is prohibited, unless a separate written agreement has been negotiated. 3. Assignment. You may not assign your rights under this agreement to a third party. Should you prefer to terminate this Agreement, all copies of the Font Software must be transferred or returned to Robert E. Leuschke, or destroyed. Except as set forth by the above, you may not assign your rights under this Agreement or rent, lease, loan, distribute or otherwise transfer the Font Software. You agree that the Font Software is for use exclusively in accordance with the sovereign laws of the United States of America and will not be shipped, transferred, or exported into any country or used in any manner prohibited by the laws of the United States of America and by the United States Export Administration Act. 4. No Other Rights. Robert E. Leuschke and his suppliers and distributors retain title and ownership of the Font Software, the media upon which it is recorded, and all subsequent copies of the Font Software, regardless of the form or media in or upon which the original and other copies may exist. Except as stated above, this Agreement does not grant you any rights to intellectual property rights in the Font Software. The use of any trademark as herein authorized does not give you any right of ownership in that trademark. 5. Term. This license is effective until terminated. Robert E. Leuschke has the right to terminate your license immediately if you fail to comply with any term of this Agreement. Upon any such termination, you will destroy the original copies of the Font Software, and related documentation and cease all use of the Font Software and trademarks. 6. Limited Warranty. (a) This Limited Warranty and any implied warranties are effective for a period of ninety (90) days from the date of delivery ("Limited Warranty Period") of the Font Software. Evidence of such Limited Warranty Period shall be determined by a copy of your receipt which shall accompany the Font Software. The Font Software shall be free from deliberate errors under normal use and service for a period of ninety (90) days after delivery to you. For the purposes of this agreement, an "error" shall be any flaw in the Font Format which causes improper reproduction when used properly on a computer device. You must do one of the following: Report all errors and return the Font Software to Robert E. Leuschke, or report all errors and destroy any and all of your copies of the Font Software. (b) If the software fails to comply with this warranty, Robert E. Leuschke at his option and discretion, will replace the Font Software media not meeting the warranty. No refunds shall be given for the Font Software. If failure of the Font Software media has resulted from accident, abuse, or misapplication of the product, then Robert E. Leuschke shall not be responsible for the replacement of the Font Software media under this Limited Warranty. (c) Robert E. Leuschke does not and cannot warranty the performance or results you may obtain by using the Font Software or its documentation. The foregoing states the sole and exclusive remedies for Robert E. Leuschke's breach of Warranty. Except for the foregoing Limited Warranty, Robert E. Leuschke makes no Warranties expressed or implied as to non-infringement of third party rights, or fitness for a particular purpose. (d) Some jurisdictions do not allow the exclusion of implied warranties or limitations on how long an implied warranty may last, so the above limitations may not apply to you. This warranty gives you specific legal rights concerning the Font Software and its usage. You may have other rights which vary from state to state and country to country. For further warranty information in regard to your local jurisdiction, contact legal representation in your area. 7. Limit of liability. (a) You further agree that any such legal liabilities incurred by any parties resulting from a default of this Agreement shall be the sole responsibility of your company. (b) In no way will Robert E. Leuschke be liable to you for any consequential or incidental damages, including any lost profits or lost savings, or for any claim by any party. (c) Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so the above limitation or exclusion may not apply to you. 8. Governing Laws. This Agreement will be governed by the laws in force in the State of Missouri, in the United States of America, excluding the application of its conflicts of law rules. This Agreement will not be governed by the United Nations Convention on Contracts for the International Sale of Goods, the application of which is expressly excluded. 9. Entire Agreement. You acknowledge that you have read this agreement, understand it and that it is the complete and exclusive statement of your agreement with Robert E. Leuschke; which supersedes any prior agreement, oral or written, and any other communications between Robert E. Leuschke and you1 relating to the subject matter of this agreement; and that your obligations under this agreement shall inure to the benefit of Robert E. Leuschke's licensors whose rights are licensed under this agreement. No variation of the terms of this agreement will be enforceable against Robert E. Leuschke unless Robert E. Leuschke gives his expressed, Written and signed consent. 10. Commitment. Robert E. Leuschke has made deliberate effort to provide within the Font Software the highest quality possible. Continued effort shall be made in good faith to provide such quality. For specific suggestions as to the improvement of the Font Software, please contact Robert E. Leuschke, at: 114 Long and Winding R" 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://scripts.sil.org/OFL" [code: wrong]π₯ FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
* [com.google.fonts/check/name/ascii_only_entries](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/ascii_only_entries) * π₯ **FAIL** Bad string at [nameID 0, 'mac_roman']: 'b'©2004-2014 by Robert E. Leuschke. All rights reserved.'' [code: bad-string] * π₯ **FAIL** Bad string at [nameID 0, 'utf_16_be']: 'b'©2004-2014 by Robert E. Leuschke. All rights reserved.'' [code: bad-string] * π₯ **FAIL** There are 2 strings containing non-ASCII characters in the ASCII-only NAME table entries. [code: non-ascii-strings]π₯ FAIL: Copyright notices match canonical pattern in fonts
* [com.google.fonts/check/font_copyright](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/font_copyright) * π₯ **FAIL** Name Table entry: Copyright notices should match a pattern similar to: "Copyright 2019 The Familyname Project Authors (git url)" But instead we have got: "Β©2004-2014 by Robert E. Leuschke. All rights reserved." [code: bad-notice-format] * π₯ **FAIL** Name Table entry: Copyright notices should match a pattern similar to: "Copyright 2019 The Familyname Project Authors (git url)" But instead we have got: "Β©2004-2014 by Robert E. Leuschke. All rights reserved." [code: bad-notice-format]π₯ FAIL: Font enables smart dropout control in "prep" table instructions?
* [com.google.fonts/check/smart_dropout](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/smart_dropout) * π₯ **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: 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) * π₯ **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 virtualenv python3 -m venv venv # activate virtualenv source venv/bin/activate # install gftools pip install git+https://www.github.com/googlefonts/tools [code: bad-flags]π₯ FAIL: Name table entries should not contain line-breaks.
* [com.google.fonts/check/name/line_breaks](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/line_breaks) * π₯ **FAIL** Name entry LICENSE_DESCRIPTION on platform MACINTOSH contains a line-break. [code: line-break] * π₯ **FAIL** Name entry LICENSE_DESCRIPTION on platform WINDOWS contains a line-break. [code: line-break]π₯ FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
* [com.google.fonts/check/os2/use_typo_metrics](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/os2/use_typo_metrics) * π₯ **FAIL** OS/2.fsSelection bit 7 (USE_TYPO_METRICS) wasNOT set in the following fonts: ['PassionsConflictPro.ttf']. [code: missing-os2-fsselection-bit7]π₯ 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) * π₯ **FAIL** OS/2.usWinAscent value should be equal or greater than 771, but got 661 instead [code: ascent]π₯ FAIL: Font contains glyphs for whitespace characters?
* [com.google.fonts/check/whitespace_glyphs](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/universal.html#com.google.fonts/check/whitespace_glyphs) * π₯ **FAIL** Whitespace glyph missing for codepoint 0x00A0. [code: missing-whitespace-glyph-0x00A0]π₯ FAIL: Does full font name begin with the font family name?
* [com.google.fonts/check/name/match_familyname_fullfont](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/name.html#com.google.fonts/check/name/match_familyname_fullfont) * π₯ **FAIL** On the 'name' table, the full font name (NameID 4 - FULL_FONT_NAME: 'PassionsConflict Pro') does not begin with font family name (NameID 1 - FONT_FAMILY_NAME: 'PassionsConflictPro') [code: does-not]π₯ FAIL: Check glyphs do not have components which are themselves components.
* [com.google.fonts/check/glyf_nested_components](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/glyf.html#com.google.fonts/check/glyf_nested_components) * π₯ **FAIL** The following glyphs have components which themselves are component glyphs: * uni030C.alt * uni0303_uni0307 * uni0303_uni0307 * uni0303_uni0304 * uni0303_uni0304 * uni0324 * uni0331 * uni0335 * uni03060301 * uni03060301 and 142 more. [code: found-nested-components]β WARN: Checking OS/2 achVendID.
* [com.google.fonts/check/vendor_id](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/vendor_id) * β **WARN** OS/2 VendorID is 'UKWN', a font editor default. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx [code: bad]β WARN: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
* [com.google.fonts/check/gasp](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/gasp) * β **WARN** The gasp table has a range of 7 that may be unneccessary. [code: non-ffff-range]β 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) * β **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: percent Contours detected: 4 Expected: 5 Glyph name: zero Contours detected: 1 Expected: 2 or 3 Glyph name: A Contours detected: 6 Expected: 2 Glyph name: B Contours detected: 4 Expected: 2 or 3 Glyph name: C Contours detected: 3 Expected: 1 Glyph name: D Contours detected: 5 Expected: 2 Glyph name: E Contours detected: 3 Expected: 1 Glyph name: F Contours detected: 3 Expected: 1 Glyph name: G Contours detected: 3 Expected: 1 Glyph name: H Contours detected: 6 Expected: 1 Glyph name: I Contours detected: 4 Expected: 1 Glyph name: J Contours detected: 2 Expected: 1 Glyph name: K Contours detected: 7 Expected: 1 or 2 Glyph name: L Contours detected: 5 Expected: 1 Glyph name: M Contours detected: 2 Expected: 1 Glyph name: N Contours detected: 4 Expected: 1 Glyph name: O Contours detected: 6 Expected: 2 Glyph name: P Contours detected: 5 Expected: 1 or 2 Glyph name: Q Contours detected: 5 Expected: 2 Glyph name: R Contours detected: 8 Expected: 1 or 2 Glyph name: S Contours detected: 2 Expected: 1 Glyph name: T Contours detected: 4 Expected: 1 Glyph name: U Contours detected: 2 Expected: 1 Glyph name: V Contours detected: 4 Expected: 1 Glyph name: W Contours detected: 4 Expected: 1 or 2 Glyph name: X Contours detected: 5 Expected: 1 Glyph name: Y Contours detected: 3 Expected: 1 Glyph name: Z Contours detected: 3 Expected: 1 Glyph name: b Contours detected: 4 Expected: 2 Glyph name: d Contours detected: 3 Expected: 2 Glyph name: f Contours detected: 2 Expected: 1 Glyph name: h Contours detected: 2 Expected: 1 Glyph name: j Contours detected: 3 Expected: 2 Glyph name: k Contours detected: 3 Expected: 1 or 2 Glyph name: l Contours detected: 2 Expected: 1 Glyph name: o Contours detected: 3 Expected: 2 Glyph name: q Contours detected: 3 Expected: 2 Glyph name: y Contours detected: 2 Expected: 1 Glyph name: z Contours detected: 2 Expected: 1 Glyph name: Agrave Contours detected: 7 Expected: 3 Glyph name: Aacute Contours detected: 7 Expected: 3 Glyph name: Acircumflex Contours detected: 7 Expected: 3 Glyph name: Atilde Contours detected: 7 Expected: 3 Glyph name: Adieresis Contours detected: 8 Expected: 4 Glyph name: Aring Contours detected: 7 Expected: 3 or 4 Glyph name: AE Contours detected: 6 Expected: 2 Glyph name: Ccedilla Contours detected: 3 Expected: 1 or 2 Glyph name: Egrave Contours detected: 4 Expected: 2 Glyph name: Eacute Contours detected: 4 Expected: 2 Glyph name: Ecircumflex Contours detected: 4 Expected: 2 Glyph name: Edieresis Contours detected: 5 Expected: 3 Glyph name: Igrave Contours detected: 5 Expected: 2 Glyph name: Iacute Contours detected: 5 Expected: 2 Glyph name: Icircumflex Contours detected: 5 Expected: 2 Glyph name: Idieresis Contours detected: 6 Expected: 3 Glyph name: Eth Contours detected: 6 Expected: 2 Glyph name: Ntilde Contours detected: 5 Expected: 2 Glyph name: Ograve Contours detected: 7 Expected: 3 Glyph name: Oacute Contours detected: 7 Expected: 3 Glyph name: Ocircumflex Contours detected: 7 Expected: 3 Glyph name: Otilde Contours detected: 7 Expected: 3 Glyph name: Odieresis Contours detected: 8 Expected: 4 Glyph name: Oslash Contours detected: 6 Expected: 2 or 3 Glyph name: Ugrave Contours detected: 3 Expected: 2 Glyph name: Uacute Contours detected: 3 Expected: 2 Glyph name: Ucircumflex Contours detected: 3 Expected: 2 Glyph name: Udieresis Contours detected: 4 Expected: 3 Glyph name: Yacute Contours detected: 4 Expected: 2 Glyph name: Thorn Contours detected: 6 Expected: 1 or 2 Glyph name: germandbls Contours detected: 2 Expected: 1 Glyph name: eth Contours detected: 1 Expected: 2 Glyph name: ograve Contours detected: 4 Expected: 3 Glyph name: oacute Contours detected: 4 Expected: 3 Glyph name: ocircumflex Contours detected: 4 Expected: 3 Glyph name: otilde Contours detected: 4 Expected: 3 Glyph name: odieresis Contours detected: 5 Expected: 4 Glyph name: oslash Contours detected: 5 Expected: 3 Glyph name: yacute Contours detected: 3 Expected: 2 Glyph name: ydieresis Contours detected: 4 Expected: 3 Glyph name: Amacron Contours detected: 7 Expected: 3 Glyph name: Abreve Contours detected: 7 Expected: 3 Glyph name: Aogonek Contours detected: 6 Expected: 2 or 3 Glyph name: Cacute Contours detected: 4 Expected: 2 Glyph name: Ccircumflex Contours detected: 4 Expected: 2 Glyph name: Cdotaccent Contours detected: 4 Expected: 2 Glyph name: Ccaron Contours detected: 4 Expected: 2 Glyph name: Dcaron Contours detected: 6 Expected: 3 Glyph name: dcaron Contours detected: 4 Expected: 3 Glyph name: Dcroat Contours detected: 6 Expected: 2 Glyph name: dcroat Contours detected: 4 Expected: 2 Glyph name: Emacron Contours detected: 4 Expected: 2 Glyph name: Ebreve Contours detected: 4 Expected: 2 Glyph name: Edotaccent Contours detected: 4 Expected: 2 Glyph name: Eogonek Contours detected: 3 Expected: 1 or 2 Glyph name: Ecaron Contours detected: 4 Expected: 2 Glyph name: Gcircumflex Contours detected: 4 Expected: 2 Glyph name: Gbreve Contours detected: 4 Expected: 2 Glyph name: Gdotaccent Contours detected: 4 Expected: 2 Glyph name: uni0122 Contours detected: 4 Expected: 2 Glyph name: Hcircumflex Contours detected: 7 Expected: 2 Glyph name: hcircumflex Contours detected: 3 Expected: 2 Glyph name: Hbar Contours detected: 8 Expected: 2 Glyph name: hbar Contours detected: 2 Expected: 1 Glyph name: Itilde Contours detected: 5 Expected: 2 Glyph name: Imacron Contours detected: 5 Expected: 2 Glyph name: Ibreve Contours detected: 5 Expected: 2 Glyph name: Iogonek Contours detected: 4 Expected: 1 or 2 Glyph name: Idotaccent Contours detected: 5 Expected: 2 Glyph name: Jcircumflex Contours detected: 3 Expected: 2 Glyph name: jcircumflex Contours detected: 3 Expected: 2 Glyph name: uni0136 Contours detected: 8 Expected: 2 or 3 Glyph name: uni0137 Contours detected: 4 Expected: 2 or 3 Glyph name: Lacute Contours detected: 6 Expected: 2 Glyph name: lacute Contours detected: 3 Expected: 2 Glyph name: uni013B Contours detected: 6 Expected: 2 Glyph name: uni013C Contours detected: 3 Expected: 2 Glyph name: Lcaron Contours detected: 6 Expected: 2 Glyph name: lcaron Contours detected: 3 Expected: 2 Glyph name: Ldot Contours detected: 6 Expected: 2 Glyph name: ldot Contours detected: 3 Expected: 2 Glyph name: Lslash Contours detected: 6 Expected: 1 Glyph name: lslash Contours detected: 2 Expected: 1 Glyph name: Nacute Contours detected: 5 Expected: 2 Glyph name: uni0145 Contours detected: 5 Expected: 2 Glyph name: Ncaron Contours detected: 5 Expected: 2 Glyph name: Eng Contours detected: 4 Expected: 1 Glyph name: Omacron Contours detected: 7 Expected: 3 Glyph name: omacron Contours detected: 4 Expected: 3 Glyph name: Obreve Contours detected: 6 Expected: 3 Glyph name: obreve Contours detected: 4 Expected: 3 Glyph name: Ohungarumlaut Contours detected: 8 Expected: 4 Glyph name: ohungarumlaut Contours detected: 5 Expected: 4 Glyph name: OE Contours detected: 7 Expected: 2 Glyph name: oe Contours detected: 4 Expected: 3 Glyph name: Racute Contours detected: 9 Expected: 3 Glyph name: uni0156 Contours detected: 9 Expected: 3 Glyph name: Rcaron Contours detected: 9 Expected: 3 Glyph name: Sacute Contours detected: 3 Expected: 2 Glyph name: Scircumflex Contours detected: 3 Expected: 2 Glyph name: Scaron Contours detected: 3 Expected: 2 Glyph name: uni0162 Contours detected: 4 Expected: 1 or 2 Glyph name: Tcaron Contours detected: 5 Expected: 2 Glyph name: Tbar Contours detected: 5 Expected: 1 Glyph name: Utilde Contours detected: 3 Expected: 2 Glyph name: Umacron Contours detected: 3 Expected: 2 Glyph name: Ubreve Contours detected: 3 Expected: 2 Glyph name: Uring Contours detected: 4 Expected: 3 Glyph name: Uhungarumlaut Contours detected: 4 Expected: 3 Glyph name: Uogonek Contours detected: 2 Expected: 1 Glyph name: Wcircumflex Contours detected: 5 Expected: 2 Glyph name: Ycircumflex Contours detected: 4 Expected: 2 Glyph name: ycircumflex Contours detected: 3 Expected: 2 Glyph name: Ydieresis Contours detected: 5 Expected: 3 Glyph name: Zacute Contours detected: 4 Expected: 2 Glyph name: zacute Contours detected: 3 Expected: 2 Glyph name: Zdotaccent Contours detected: 4 Expected: 2 Glyph name: zdotaccent Contours detected: 3 Expected: 2 Glyph name: Zcaron Contours detected: 4 Expected: 2 Glyph name: zcaron Contours detected: 3 Expected: 2 Glyph name: Ohorn Contours detected: 6 Expected: 2 or 3 Glyph name: ohorn Contours detected: 3 Expected: 2 Glyph name: Uhorn Contours detected: 2 Expected: 1 Glyph name: uni01C4 Contours detected: 8 Expected: 4 Glyph name: uni01C5 Contours detected: 8 Expected: 4 Glyph name: uni01C6 Contours detected: 5 Expected: 4 Glyph name: uni01C7 Contours detected: 7 Expected: 2 Glyph name: uni01C8 Contours detected: 8 Expected: 3 Glyph name: uni01C9 Contours detected: 4 Expected: 3 Glyph name: uni01CA Contours detected: 5 Expected: 2 Glyph name: uni01CB Contours detected: 6 Expected: 3 Glyph name: Gcaron Contours detected: 4 Expected: 2 Glyph name: uni01EA Contours detected: 6 Expected: 2 Glyph name: uni01EB Contours detected: 3 Expected: 2 Glyph name: Aringacute Contours detected: 8 Expected: 3, 4 or 5 Glyph name: AEacute Contours detected: 7 Expected: 3 Glyph name: Oslashacute Contours detected: 7 Expected: 4 Glyph name: oslashacute Contours detected: 6 Expected: 4 Glyph name: uni0200 Contours detected: 8 Expected: 4 Glyph name: uni0202 Contours detected: 7 Expected: 3 Glyph name: uni0204 Contours detected: 5 Expected: 3 Glyph name: uni0206 Contours detected: 4 Expected: 2 Glyph name: uni0208 Contours detected: 6 Expected: 3 Glyph name: uni020A Contours detected: 5 Expected: 2 Glyph name: uni020C Contours detected: 8 Expected: 4 Glyph name: uni020D Contours detected: 5 Expected: 4 Glyph name: uni020E Contours detected: 7 Expected: 3 Glyph name: uni020F Contours detected: 4 Expected: 3 Glyph name: uni0210 Contours detected: 10 Expected: 4 Glyph name: uni0212 Contours detected: 9 Expected: 3 Glyph name: uni0214 Contours detected: 4 Expected: 3 Glyph name: uni0216 Contours detected: 3 Expected: 2 Glyph name: uni0218 Contours detected: 3 Expected: 2 Glyph name: uni021A Contours detected: 5 Expected: 2 Glyph name: uni022A Contours detected: 9 Expected: 5 Glyph name: uni022B Contours detected: 6 Expected: 5 Glyph name: uni022C Contours detected: 8 Expected: 4 Glyph name: uni022D Contours detected: 5 Expected: 4 Glyph name: uni0230 Contours detected: 8 Expected: 4 Glyph name: uni0231 Contours detected: 5 Expected: 4 Glyph name: uni0232 Contours detected: 4 Expected: 2 Glyph name: uni0233 Contours detected: 3 Expected: 2 Glyph name: uni0237 Contours detected: 2 Expected: 1 Glyph name: Wgrave Contours detected: 5 Expected: 2 Glyph name: Wacute Contours detected: 5 Expected: 2 Glyph name: Wdieresis Contours detected: 6 Expected: 3 Glyph name: uni1EA0 Contours detected: 7 Expected: 3 Glyph name: uni1EA2 Contours detected: 7 Expected: 3 Glyph name: uni1EA4 Contours detected: 8 Expected: 4 Glyph name: uni1EA6 Contours detected: 8 Expected: 4 Glyph name: uni1EA8 Contours detected: 8 Expected: 4 Glyph name: uni1EAA Contours detected: 8 Expected: 4 Glyph name: uni1EAC Contours detected: 8 Expected: 4 Glyph name: uni1EAE Contours detected: 8 Expected: 4 Glyph name: uni1EB0 Contours detected: 8 Expected: 4 Glyph name: uni1EB2 Contours detected: 8 Expected: 4 Glyph name: uni1EB4 Contours detected: 8 Expected: 4 Glyph name: uni1EB6 Contours detected: 8 Expected: 4 Glyph name: uni1EB8 Contours detected: 4 Expected: 2 Glyph name: uni1EBA Contours detected: 4 Expected: 2 Glyph name: uni1EBC Contours detected: 4 Expected: 2 Glyph name: uni1EBE Contours detected: 5 Expected: 3 Glyph name: uni1EC0 Contours detected: 5 Expected: 3 Glyph name: uni1EC2 Contours detected: 5 Expected: 3 Glyph name: uni1EC4 Contours detected: 5 Expected: 3 Glyph name: uni1EC6 Contours detected: 5 Expected: 3 Glyph name: uni1EC8 Contours detected: 5 Expected: 2 Glyph name: uni1ECA Contours detected: 5 Expected: 2 Glyph name: uni1ECC Contours detected: 7 Expected: 3 Glyph name: uni1ECD Contours detected: 4 Expected: 3 Glyph name: uni1ECE Contours detected: 7 Expected: 3 Glyph name: uni1ECF Contours detected: 4 Expected: 3 Glyph name: uni1ED0 Contours detected: 8 Expected: 4 Glyph name: uni1ED1 Contours detected: 5 Expected: 4 Glyph name: uni1ED2 Contours detected: 8 Expected: 4 Glyph name: uni1ED3 Contours detected: 5 Expected: 4 Glyph name: uni1ED4 Contours detected: 8 Expected: 4 Glyph name: uni1ED5 Contours detected: 5 Expected: 4 Glyph name: uni1ED6 Contours detected: 8 Expected: 4 Glyph name: uni1ED7 Contours detected: 5 Expected: 4 Glyph name: uni1ED8 Contours detected: 8 Expected: 4 Glyph name: uni1ED9 Contours detected: 5 Expected: 4 Glyph name: uni1EDA Contours detected: 7 Expected: 3 or 4 Glyph name: uni1EDB Contours detected: 4 Expected: 3 Glyph name: uni1EDC Contours detected: 7 Expected: 3 or 4 Glyph name: uni1EDD Contours detected: 4 Expected: 3 Glyph name: uni1EDE Contours detected: 7 Expected: 3 or 4 Glyph name: uni1EDF Contours detected: 4 Expected: 3 Glyph name: uni1EE0 Contours detected: 7 Expected: 3 or 4 Glyph name: uni1EE1 Contours detected: 4 Expected: 3 Glyph name: uni1EE2 Contours detected: 7 Expected: 3 or 4 Glyph name: uni1EE3 Contours detected: 4 Expected: 3 Glyph name: uni1EE4 Contours detected: 3 Expected: 2 Glyph name: uni1EE6 Contours detected: 3 Expected: 2 Glyph name: uni1EE8 Contours detected: 3 Expected: 2 Glyph name: uni1EEA Contours detected: 3 Expected: 2 Glyph name: uni1EEC Contours detected: 3 Expected: 2 Glyph name: uni1EEE Contours detected: 3 Expected: 2 Glyph name: uni1EF0 Contours detected: 3 Expected: 2 Glyph name: Ygrave Contours detected: 4 Expected: 2 Glyph name: ygrave Contours detected: 3 Expected: 2 Glyph name: uni1EF4 Contours detected: 4 Expected: 2 Glyph name: uni1EF5 Contours detected: 3 Expected: 2 Glyph name: uni1EF6 Contours detected: 4 Expected: 2 Glyph name: uni1EF7 Contours detected: 3 Expected: 2 Glyph name: uni1EF8 Contours detected: 4 Expected: 2 Glyph name: uni1EF9 Contours detected: 3 Expected: 2 Glyph name: lira Contours detected: 2 Expected: 1 Glyph name: uni20A9 Contours detected: 5 Expected: 1, 3, 4 or 7 Glyph name: dong Contours detected: 5 Expected: 3 or 4 Glyph name: uni20B1 Contours detected: 3 Expected: 1, 2 or 4 Glyph name: uni20B9 Contours detected: 2 Expected: 1 Glyph name: uni20BD Contours detected: 1 Expected: 2 Glyph name: partialdiff Contours detected: 1 Expected: 2 Glyph name: fl Contours detected: 3 Expected: 1 or 2 Glyph name: A Contours detected: 6 Expected: 2 Glyph name: AE Contours detected: 6 Expected: 2 Glyph name: AEacute Contours detected: 7 Expected: 3 Glyph name: Aacute Contours detected: 7 Expected: 3 Glyph name: Abreve Contours detected: 7 Expected: 3 Glyph name: Acircumflex Contours detected: 7 Expected: 3 Glyph name: Adieresis Contours detected: 8 Expected: 4 Glyph name: Agrave Contours detected: 7 Expected: 3 Glyph name: Amacron Contours detected: 7 Expected: 3 Glyph name: Aogonek Contours detected: 6 Expected: 2 or 3 Glyph name: Aring Contours detected: 7 Expected: 3 or 4 Glyph name: Aringacute Contours detected: 8 Expected: 3, 4 or 5 Glyph name: Atilde Contours detected: 7 Expected: 3 Glyph name: B Contours detected: 4 Expected: 2 or 3 Glyph name: C Contours detected: 3 Expected: 1 Glyph name: Cacute Contours detected: 4 Expected: 2 Glyph name: Ccaron Contours detected: 4 Expected: 2 Glyph name: Ccedilla Contours detected: 3 Expected: 1 or 2 Glyph name: Ccircumflex Contours detected: 4 Expected: 2 Glyph name: Cdotaccent Contours detected: 4 Expected: 2 Glyph name: D Contours detected: 5 Expected: 2 Glyph name: Dcaron Contours detected: 6 Expected: 3 Glyph name: Dcroat Contours detected: 6 Expected: 2 Glyph name: E Contours detected: 3 Expected: 1 Glyph name: Eacute Contours detected: 4 Expected: 2 Glyph name: Ebreve Contours detected: 4 Expected: 2 Glyph name: Ecaron Contours detected: 4 Expected: 2 Glyph name: Ecircumflex Contours detected: 4 Expected: 2 Glyph name: Edieresis Contours detected: 5 Expected: 3 Glyph name: Edotaccent Contours detected: 4 Expected: 2 Glyph name: Egrave Contours detected: 4 Expected: 2 Glyph name: Emacron Contours detected: 4 Expected: 2 Glyph name: Eng Contours detected: 4 Expected: 1 Glyph name: Eogonek Contours detected: 3 Expected: 1 or 2 Glyph name: Eth Contours detected: 6 Expected: 2 Glyph name: F Contours detected: 3 Expected: 1 Glyph name: G Contours detected: 3 Expected: 1 Glyph name: Gbreve Contours detected: 4 Expected: 2 Glyph name: Gcaron Contours detected: 4 Expected: 2 Glyph name: Gcircumflex Contours detected: 4 Expected: 2 Glyph name: Gdotaccent Contours detected: 4 Expected: 2 Glyph name: H Contours detected: 6 Expected: 1 Glyph name: Hbar Contours detected: 8 Expected: 2 Glyph name: Hcircumflex Contours detected: 7 Expected: 2 Glyph name: I Contours detected: 4 Expected: 1 Glyph name: Iacute Contours detected: 5 Expected: 2 Glyph name: Ibreve Contours detected: 5 Expected: 2 Glyph name: Icircumflex Contours detected: 5 Expected: 2 Glyph name: Idieresis Contours detected: 6 Expected: 3 Glyph name: Idotaccent Contours detected: 5 Expected: 2 Glyph name: Igrave Contours detected: 5 Expected: 2 Glyph name: Imacron Contours detected: 5 Expected: 2 Glyph name: Iogonek Contours detected: 4 Expected: 1 or 2 Glyph name: Itilde Contours detected: 5 Expected: 2 Glyph name: J Contours detected: 2 Expected: 1 Glyph name: Jcircumflex Contours detected: 3 Expected: 2 Glyph name: K Contours detected: 7 Expected: 1 or 2 Glyph name: L Contours detected: 5 Expected: 1 Glyph name: Lacute Contours detected: 6 Expected: 2 Glyph name: Lcaron Contours detected: 6 Expected: 2 Glyph name: Ldot Contours detected: 6 Expected: 2 Glyph name: Lslash Contours detected: 6 Expected: 1 Glyph name: M Contours detected: 2 Expected: 1 Glyph name: N Contours detected: 4 Expected: 1 Glyph name: Nacute Contours detected: 5 Expected: 2 Glyph name: Ncaron Contours detected: 5 Expected: 2 Glyph name: Ntilde Contours detected: 5 Expected: 2 Glyph name: O Contours detected: 6 Expected: 2 Glyph name: OE Contours detected: 7 Expected: 2 Glyph name: Oacute Contours detected: 7 Expected: 3 Glyph name: Ocircumflex Contours detected: 7 Expected: 3 Glyph name: Odieresis Contours detected: 8 Expected: 4 Glyph name: Ograve Contours detected: 7 Expected: 3 Glyph name: Ohorn Contours detected: 6 Expected: 2 or 3 Glyph name: Ohungarumlaut Contours detected: 8 Expected: 4 Glyph name: Omacron Contours detected: 7 Expected: 3 Glyph name: Oslash Contours detected: 6 Expected: 2 or 3 Glyph name: Oslashacute Contours detected: 7 Expected: 4 Glyph name: Otilde Contours detected: 7 Expected: 3 Glyph name: P Contours detected: 5 Expected: 1 or 2 Glyph name: Q Contours detected: 5 Expected: 2 Glyph name: R Contours detected: 8 Expected: 1 or 2 Glyph name: Racute Contours detected: 9 Expected: 3 Glyph name: Rcaron Contours detected: 9 Expected: 3 Glyph name: S Contours detected: 2 Expected: 1 Glyph name: Sacute Contours detected: 3 Expected: 2 Glyph name: Scaron Contours detected: 3 Expected: 2 Glyph name: Scircumflex Contours detected: 3 Expected: 2 Glyph name: T Contours detected: 4 Expected: 1 Glyph name: Tbar Contours detected: 5 Expected: 1 Glyph name: Tcaron Contours detected: 5 Expected: 2 Glyph name: Thorn Contours detected: 6 Expected: 1 or 2 Glyph name: U Contours detected: 2 Expected: 1 Glyph name: Uacute Contours detected: 3 Expected: 2 Glyph name: Ubreve Contours detected: 3 Expected: 2 Glyph name: Ucircumflex Contours detected: 3 Expected: 2 Glyph name: Udieresis Contours detected: 4 Expected: 3 Glyph name: Ugrave Contours detected: 3 Expected: 2 Glyph name: Uhorn Contours detected: 2 Expected: 1 Glyph name: Uhungarumlaut Contours detected: 4 Expected: 3 Glyph name: Umacron Contours detected: 3 Expected: 2 Glyph name: Uogonek Contours detected: 2 Expected: 1 Glyph name: Uring Contours detected: 4 Expected: 3 Glyph name: Utilde Contours detected: 3 Expected: 2 Glyph name: V Contours detected: 4 Expected: 1 Glyph name: W Contours detected: 4 Expected: 1 or 2 Glyph name: Wacute Contours detected: 5 Expected: 2 Glyph name: Wcircumflex Contours detected: 5 Expected: 2 Glyph name: Wdieresis Contours detected: 6 Expected: 3 Glyph name: Wgrave Contours detected: 5 Expected: 2 Glyph name: X Contours detected: 5 Expected: 1 Glyph name: Y Contours detected: 3 Expected: 1 Glyph name: Yacute Contours detected: 4 Expected: 2 Glyph name: Ycircumflex Contours detected: 4 Expected: 2 Glyph name: Ydieresis Contours detected: 5 Expected: 3 Glyph name: Ygrave Contours detected: 4 Expected: 2 Glyph name: Z Contours detected: 3 Expected: 1 Glyph name: Zacute Contours detected: 4 Expected: 2 Glyph name: Zcaron Contours detected: 4 Expected: 2 Glyph name: Zdotaccent Contours detected: 4 Expected: 2 Glyph name: b Contours detected: 4 Expected: 2 Glyph name: d Contours detected: 3 Expected: 2 Glyph name: dcaron Contours detected: 4 Expected: 3 Glyph name: dcroat Contours detected: 4 Expected: 2 Glyph name: dong Contours detected: 5 Expected: 3 or 4 Glyph name: eth Contours detected: 1 Expected: 2 Glyph name: f Contours detected: 2 Expected: 1 Glyph name: fl Contours detected: 3 Expected: 2 Glyph name: germandbls Contours detected: 2 Expected: 1 Glyph name: h Contours detected: 2 Expected: 1 Glyph name: hbar Contours detected: 2 Expected: 1 Glyph name: hcircumflex Contours detected: 3 Expected: 2 Glyph name: j Contours detected: 3 Expected: 2 Glyph name: jcircumflex Contours detected: 3 Expected: 2 Glyph name: k Contours detected: 3 Expected: 1 or 2 Glyph name: l Contours detected: 2 Expected: 1 Glyph name: lacute Contours detected: 3 Expected: 2 Glyph name: lcaron Contours detected: 3 Expected: 2 Glyph name: ldot Contours detected: 3 Expected: 2 Glyph name: lira Contours detected: 2 Expected: 1 Glyph name: lslash Contours detected: 2 Expected: 1 Glyph name: o Contours detected: 3 Expected: 2 Glyph name: oacute Contours detected: 4 Expected: 3 Glyph name: ocircumflex Contours detected: 4 Expected: 3 Glyph name: odieresis Contours detected: 5 Expected: 4 Glyph name: oe Contours detected: 4 Expected: 3 Glyph name: ograve Contours detected: 4 Expected: 3 Glyph name: ohorn Contours detected: 3 Expected: 2 Glyph name: ohungarumlaut Contours detected: 5 Expected: 4 Glyph name: omacron Contours detected: 4 Expected: 3 Glyph name: oslash Contours detected: 5 Expected: 3 Glyph name: oslashacute Contours detected: 6 Expected: 4 Glyph name: otilde Contours detected: 4 Expected: 3 Glyph name: partialdiff Contours detected: 1 Expected: 2 Glyph name: percent Contours detected: 4 Expected: 5 Glyph name: q Contours detected: 3 Expected: 2 Glyph name: uni0122 Contours detected: 4 Expected: 2 Glyph name: uni0136 Contours detected: 8 Expected: 2 or 3 Glyph name: uni0137 Contours detected: 4 Expected: 2 or 3 Glyph name: uni013B Contours detected: 6 Expected: 2 Glyph name: uni013C Contours detected: 3 Expected: 2 Glyph name: uni0145 Contours detected: 5 Expected: 2 Glyph name: uni0156 Contours detected: 9 Expected: 3 Glyph name: uni0162 Contours detected: 4 Expected: 1 or 2 Glyph name: uni01C4 Contours detected: 8 Expected: 4 Glyph name: uni01C5 Contours detected: 8 Expected: 4 Glyph name: uni01C6 Contours detected: 5 Expected: 4 Glyph name: uni01C7 Contours detected: 7 Expected: 2 Glyph name: uni01C8 Contours detected: 8 Expected: 3 Glyph name: uni01C9 Contours detected: 4 Expected: 3 Glyph name: uni01CA Contours detected: 5 Expected: 2 Glyph name: uni01CB Contours detected: 6 Expected: 3 Glyph name: uni0218 Contours detected: 3 Expected: 2 Glyph name: uni021A Contours detected: 5 Expected: 2 Glyph name: uni022A Contours detected: 9 Expected: 5 Glyph name: uni022B Contours detected: 6 Expected: 5 Glyph name: uni022C Contours detected: 8 Expected: 4 Glyph name: uni022D Contours detected: 5 Expected: 4 Glyph name: uni0230 Contours detected: 8 Expected: 4 Glyph name: uni0231 Contours detected: 5 Expected: 4 Glyph name: uni0232 Contours detected: 4 Expected: 2 Glyph name: uni0233 Contours detected: 3 Expected: 2 Glyph name: uni0237 Contours detected: 2 Expected: 1 Glyph name: uni1EA0 Contours detected: 7 Expected: 3 Glyph name: uni1EA2 Contours detected: 7 Expected: 3 Glyph name: uni1EA4 Contours detected: 8 Expected: 4 Glyph name: uni1EA6 Contours detected: 8 Expected: 4 Glyph name: uni1EA8 Contours detected: 8 Expected: 4 Glyph name: uni1EAA Contours detected: 8 Expected: 4 Glyph name: uni1EAC Contours detected: 8 Expected: 4 Glyph name: uni1EAE Contours detected: 8 Expected: 4 Glyph name: uni1EB0 Contours detected: 8 Expected: 4 Glyph name: uni1EB2 Contours detected: 8 Expected: 4 Glyph name: uni1EB4 Contours detected: 8 Expected: 4 Glyph name: uni1EB6 Contours detected: 8 Expected: 4 Glyph name: uni1EB8 Contours detected: 4 Expected: 2 Glyph name: uni1EBA Contours detected: 4 Expected: 2 Glyph name: uni1EBC Contours detected: 4 Expected: 2 Glyph name: uni1EBE Contours detected: 5 Expected: 3 Glyph name: uni1EC0 Contours detected: 5 Expected: 3 Glyph name: uni1EC2 Contours detected: 5 Expected: 3 Glyph name: uni1EC4 Contours detected: 5 Expected: 3 Glyph name: uni1EC6 Contours detected: 5 Expected: 3 Glyph name: uni1EC8 Contours detected: 5 Expected: 2 Glyph name: uni1ECA Contours detected: 5 Expected: 2 Glyph name: uni1ECC Contours detected: 7 Expected: 3 Glyph name: uni1ECD Contours detected: 4 Expected: 3 Glyph name: uni1ECE Contours detected: 7 Expected: 3 Glyph name: uni1ECF Contours detected: 4 Expected: 3 Glyph name: uni1ED0 Contours detected: 8 Expected: 4 Glyph name: uni1ED1 Contours detected: 5 Expected: 4 Glyph name: uni1ED2 Contours detected: 8 Expected: 4 Glyph name: uni1ED3 Contours detected: 5 Expected: 4 Glyph name: uni1ED4 Contours detected: 8 Expected: 4 Glyph name: uni1ED5 Contours detected: 5 Expected: 4 Glyph name: uni1ED6 Contours detected: 8 Expected: 4 Glyph name: uni1ED7 Contours detected: 5 Expected: 4 Glyph name: uni1ED8 Contours detected: 8 Expected: 4 Glyph name: uni1ED9 Contours detected: 5 Expected: 4 Glyph name: uni1EDA Contours detected: 7 Expected: 3 or 4 Glyph name: uni1EDB Contours detected: 4 Expected: 3 Glyph name: uni1EDC Contours detected: 7 Expected: 3 or 4 Glyph name: uni1EDD Contours detected: 4 Expected: 3 Glyph name: uni1EDE Contours detected: 7 Expected: 3 or 4 Glyph name: uni1EDF Contours detected: 4 Expected: 3 Glyph name: uni1EE0 Contours detected: 7 Expected: 3 or 4 Glyph name: uni1EE1 Contours detected: 4 Expected: 3 Glyph name: uni1EE2 Contours detected: 7 Expected: 3 or 4 Glyph name: uni1EE3 Contours detected: 4 Expected: 3 Glyph name: uni1EE4 Contours detected: 3 Expected: 2 Glyph name: uni1EE6 Contours detected: 3 Expected: 2 Glyph name: uni1EE8 Contours detected: 3 Expected: 2 Glyph name: uni1EEA Contours detected: 3 Expected: 2 Glyph name: uni1EEC Contours detected: 3 Expected: 2 Glyph name: uni1EEE Contours detected: 3 Expected: 2 Glyph name: uni1EF0 Contours detected: 3 Expected: 2 Glyph name: uni1EF4 Contours detected: 4 Expected: 2 Glyph name: uni1EF5 Contours detected: 3 Expected: 2 Glyph name: uni1EF6 Contours detected: 4 Expected: 2 Glyph name: uni1EF7 Contours detected: 3 Expected: 2 Glyph name: uni1EF8 Contours detected: 4 Expected: 2 Glyph name: uni1EF9 Contours detected: 3 Expected: 2 Glyph name: uni20A9 Contours detected: 5 Expected: 1, 3, 4 or 7 Glyph name: uni20B1 Contours detected: 3 Expected: 1, 2 or 4 Glyph name: uni20B9 Contours detected: 2 Expected: 1 Glyph name: uni20BD Contours detected: 1 Expected: 2 Glyph name: y Contours detected: 2 Expected: 1 Glyph name: yacute Contours detected: 3 Expected: 2 Glyph name: ycircumflex Contours detected: 3 Expected: 2 Glyph name: ydieresis Contours detected: 4 Expected: 3 Glyph name: ygrave Contours detected: 3 Expected: 2 Glyph name: z Contours detected: 2 Expected: 1 Glyph name: zacute Contours detected: 3 Expected: 2 Glyph name: zcaron Contours detected: 3 Expected: 2 Glyph name: zdotaccent Contours detected: 3 Expected: 2 Glyph name: zero Contours detected: 1 Expected: 2 or 3 [code: contour-count]β WARN: Are there caret positions declared for every ligature?
* [com.google.fonts/check/ligature_carets](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/ligature_carets) * β **WARN** This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]β WARN: Is there kerning info for non-ligated sequences?
* [com.google.fonts/check/kerning_for_non_ligated_sequences](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/kerning_for_non_ligated_sequences) * β **WARN** GPOS table lacks kerning info for the following non-ligated sequences: - f + f - f + i - i + f - f + l - l + f - i + l [code: lacks-kern-info]β WARN: Ensure fonts have ScriptLangTags declared on the 'meta' table.
* [com.google.fonts/check/meta/script_lang_tags](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/meta/script_lang_tags) * β **WARN** This font file does not have a 'meta' table. [code: lacks-meta-table]β WARN: Font contains '.notdef' as its first glyph?
* [com.google.fonts/check/mandatory_glyphs](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/universal.html#com.google.fonts/check/mandatory_glyphs) * β **WARN** Glyph '.notdef' should contain a drawing, but it is empty. [code: empty]β WARN: Does the font have a DSIG table?
* [com.google.fonts/check/dsig](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/dsig.html#com.google.fonts/check/dsig) * β **WARN** This font has a digital signature (DSIG table) which is only required - even if only a dummy placeholder - on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table. [code: found-DSIG]β WARN: Do any segments have colinear vectors?
* [com.google.fonts/check/outline_colinear_vectors](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/β WARN: Do outlines contain any jaggy segments?
* [com.google.fonts/check/outline_jaggy_segments](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/β WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
* [com.google.fonts/check/outline_semi_vertical](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/Summary
Note: The following loglevels were omitted in this report: