google / fonts

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

Add: Xuong Typeface #7610

Open TruongNguyenHuy opened 6 months ago

TruongNguyenHuy commented 6 months ago

Font Project Git Repo URL: https://github.com/TruongNguyenHuy/Xuong

Super short description of the Font Family: An open source display typeface inspired by vehicles traveling on small rivers in Vietnam

Requirements:

I understand that Google Fonts will publish only fonts that matches its requirements, and I can confirm the project meets them (by ticking the cases, or putting x between the square brackets in text mode):

Image:

1 2

emmamarichal commented 6 months ago

Hello @TruongNguyenHuy! thank you for your submission!

I'm Emma and I work with the Google Fonts team. I took a look to your project, you will find the fontbakery report below (this tool report some fails and warns, according to our specs. If the font is accepted, I'll help you to solve them).

However, I see that some glyphs are missing: Ecaron, Idotaccent, Lcommaaccent, Sacute, Germandbls, Zacute, ecaron, idotless, idotaccent, jdotless, sacute, zacute, ordfeminine, ordmasculine, nbspace, periodcentered.loclCAT, periodcentered.loclCAT.case, dieresiscomb, dotaccentcomb, gravecomb, acutecomb, hungarumlautcomb, caroncomb.alt, circumflexcomb, caroncomb, brevecomb, ringcomb, tildecomb, macroncomb, commaaccentcomb, cedillacomb, ogonekcomb

I can generate the comb accent if you prefer, but I would need a design for the Germandbls (the uppercase one).

I put this project in our "submissions to review" milestone, and we will take a look asap! thanks!

FontBakery report

fontbakery version: 0.12.5

Experimental checks

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

[1] Xuong.ttf
⚠️ WARN Validate location, size and resolution of article images.
* ⚠️ **WARN**

Family metadata at . does not have an article.

[code: lacks-article]

All other checks

[33] Xuong.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs.
* 🔥 **FAIL**

The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+013C: LATIN SMALL LETTER L WITH CEDILLA U+013B: LATIN CAPITAL LETTER L WITH CEDILLA
U+0259: LATIN SMALL LETTER SCHWA U+018F: LATIN CAPITAL LETTER SCHWA
U+1E20: LATIN CAPITAL LETTER G WITH MACRON U+1E21: LATIN SMALL LETTER G WITH MACRON
[code: missing-case-counterparts]
🔥 FAIL Checking OS/2 usWinAscent & usWinDescent.
* 🔥 **FAIL**

OS/2.usWinAscent value should be equal or greater than 1062, but got 900 instead

[code: ascent]
🔥 FAIL Checking Vertical Metric Linegaps.
* 🔥 **FAIL**

hhea lineGap is not equal to 0.

Overridden: This check was originally a WARN but was overridden by the ufo profile: For Google Fonts, all messages from this check are considered FAILs.

[code: hhea]
🔥 FAIL Font contains '.notdef' as its first glyph?
* 🔥 **FAIL**

The '.notdef' glyph should contain a drawing, but it is blank.

[code: notdef-is-blank]
🔥 FAIL Font contains glyphs for whitespace characters?
* 🔥 **FAIL**

Whitespace glyph missing for codepoint 0x00A0.

[code: missing-whitespace-glyph-0x00A0]
🔥 FAIL Shapes languages in all GF glyphsets.
* 🔥 **FAIL**

GF_Latin_Vietnamese glyphset:

Language FAIL messages
vi_Latn (Vietnamese) Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̃, ◌̆, ◌̉, ◌̛, ◌̣
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
ca_Latn (Catalan) Some mark glyphs were missing: ◌̀, ◌́, ◌̈, ◌̧
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
cs_Latn (Czech) Some base glyphs were missing: Ě, ě
^ Some mark glyphs were missing: ◌́, ◌̊, ◌̌
^ Shaper produced a .notdef
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
cy_Latn (Welsh) Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̈
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
da_Latn (Danish) Some mark glyphs were missing: ◌́, ◌̊
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
de_Latn (German) Some base glyphs were missing: ẞ
^ Some mark glyphs were missing: ◌̀, ◌́, ◌̈
^ Shaper produced a .notdef
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
en_Latn (English) Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̃, ◌̈, ◌̧
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
es_Latn (Spanish) Some mark glyphs were missing: ◌́, ◌̃, ◌̈
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
fi_Latn (Finnish) Some mark glyphs were missing: ◌̃, ◌̈, ◌̊, ◌̌
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
fr_Latn (French) Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̈, ◌̧
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
hr_Latn (Croatian) Some mark glyphs were missing: ◌́, ◌̌
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
hu_Latn (Hungarian) Some mark glyphs were missing: ◌́, ◌̈, ◌̋
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
is_Latn (Icelandic) Some mark glyphs were missing: ◌́, ◌̈, ◌̨
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
it_Latn (Italian) Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̈
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
lt_Latn (Lithuanian) Some mark glyphs were missing: ◌̄, ◌̇, ◌̌, ◌̨
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
lv_Latn (Latvian) Some base glyphs were missing: Ļ
^ Some mark glyphs were missing: ◌̄, ◌̌, ◌̧
^ Shaper produced a .notdef
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
mt_Latn (Maltese) Some mark glyphs were missing: ◌̀, ◌̂, ◌̇
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
nb_Latn (Norwegian Bokmål) Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̈, ◌̊
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
nl_Latn (Dutch) Some base glyphs were missing: ÍJ́, íj́
^ Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̈
^ Shaper produced a .notdef
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
pl_Latn (Polish) Some base glyphs were missing: Ś, ś, Ź, ź
^ Some mark glyphs were missing: ◌́, ◌̇, ◌̨
^ Shaper produced a .notdef
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
pt_Latn (Portuguese) Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̃, ◌̈, ◌̧
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
ro_Latn (Romanian) Some mark glyphs were missing: ◌̂, ◌̆, ◌̦, ◌̧
^ in Romanian, S-cedilla should become S-comma-accent; both buffers returned Scedilla=0+542
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
sk_Latn (Slovak) Some mark glyphs were missing: ◌́, ◌̂, ◌̈, ◌̌
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
sq_Latn (Albanian) Some mark glyphs were missing: ◌̈, ◌̧
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
sv_Latn (Swedish) Some mark glyphs were missing: ◌̀, ◌́, ◌̈, ◌̊
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Latin_Core glyphset:

Language FAIL messages
tr_Latn (Turkish) Some base glyphs were missing: İ, ı
^ Some mark glyphs were missing: ◌̂, ◌̆, ◌̇, ◌̈, ◌̦, ◌̧
^ Shaper produced a .notdef
[code: failed-language-shaping]
🔥 FAIL Checking file is named canonically.
* 🔥 **FAIL**

Expected "Xuong-Bold.ttf. Got Xuong.ttf.

[code: bad-filename]
🔥 FAIL Check font names are correct
* 🔥 **FAIL**

Font names are incorrect:

nameID current expected
Family Name Xuong Xuong
Subfamily Name Bold Bold
Full Name Xuong Xuong Bold
Postscript Name Xuong Xuong-Bold
[code: bad-names]
🔥 FAIL Checking OS/2 fsType does not impose restrictions.
* 🔥 **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 Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
* 🔥 **FAIL**

Font is missing the 'gasp' table. Try exporting the font with autohinting enabled. If you are dealing with an unhinted font, it can be fixed by running the fonts through the command 'gftools fix-nonhinting' GFTools is available at https://pypi.org/project/gftools/

[code: lacks-gasp]
🔥 FAIL Check Google Fonts glyph coverage.
* 🔥 **FAIL**

Missing required codepoints:

- 0x00A0 (NO-BREAK SPACE)

- 0x00AA (FEMININE ORDINAL INDICATOR)

- 0x00BA (MASCULINE ORDINAL INDICATOR)

- 0x011A (LATIN CAPITAL LETTER E WITH CARON)

- 0x011B (LATIN SMALL LETTER E WITH CARON)

- 0x0130 (LATIN CAPITAL LETTER I WITH DOT ABOVE)

- 0x0131 (LATIN SMALL LETTER DOTLESS I)

- 0x013B (LATIN CAPITAL LETTER L WITH CEDILLA)

- 0x015A (LATIN CAPITAL LETTER S WITH ACUTE)

- 0x015B (LATIN SMALL LETTER S WITH ACUTE)

- 18 more.

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

[code: missing-codepoints]
🔥 FAIL Font enables smart dropout control in "prep" table instructions?
* 🔥 **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 Check font follows the Google Fonts vertical metric schema
* 🔥 **FAIL**

OS/2.sTypoLineGap is "190" it should be 0

[code: bad-OS/2.sTypoLineGap] * 🔥 **FAIL**

hhea.lineGap is "190" it should be 0

[code: bad-hhea.lineGap]
⚠️ WARN Does the font have a DSIG table?
* ⚠️ **WARN**

This font has a digital signature (DSIG table) which is only required - even if only a 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 Does GPOS table have kerning information? This check skips monospaced fonts as defined by post.isFixedPitch value
* ⚠️ **WARN**

GPOS table lacks kerning information.

[code: lacks-kern-info]
⚠️ WARN Check accent of Lcaron, dcaron, lcaron, tcaron
* ⚠️ **WARN**

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

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

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

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

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

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

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

[code: decomposed-outline]
⚠️ WARN Check if each glyph has the recommended amount of contours.
* ⚠️ **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: numbersign Contours detected: 4    Expected: 2

- Glyph name: asterisk  Contours detected: 3    Expected: 1 or 4

- Glyph name: plus  Contours detected: 2    Expected: 1

- Glyph name: at    Contours detected: 3    Expected: 2

- Glyph name: J Contours detected: 2    Expected: 1

- Glyph name: Q Contours detected: 3    Expected: 2

- Glyph name: V Contours detected: 2    Expected: 1

- Glyph name: b Contours detected: 3    Expected: 2

- Glyph name: e Contours detected: 1    Expected: 2

- Glyph name: g Contours detected: 1    Expected: 2 or 3

- 146 more.

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

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

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

Width = 395: lessequal, greater, less, greaterequal

Width = 562: logicalnot

Width = 410: multiply

[code: width-outliers]
⚠️ WARN Checking with ots-sanitize.
* ⚠️ **WARN**

ots-sanitize passed this file, however warnings were printed:

WARNING: maxp: Bad maxZones: 0

[code: ots-sanitize-warn]
⚠️ WARN Glyph names are all valid?
* ⚠️ **WARN**

The following glyph names may be too long for some legacy systems which may expect a maximum 31-characters length limit: c_ograve_n_space_b_agrave_n_space_n_egrave, c_uni1EED_a_space_h_agrave_n_g.ss02, dcroat_oacute_n_g_space_c_uni1EED_a, h_o_n_g_space_c_ograve_n_space_b_agrave_n, m_i_uni1EC1_n_space_t_acircumflex_y, s_ocircumflex_n_g_space_n_uhorn_uni1EDB_c, uni1EDF_space_dcroat_acircumflex_y_space_c_oacute, uni1EDF_space_dcroat_acircumflex_y_space_c_oacute.ss02 and x_u_uni1ED3_n_g_space_b_a_space_l_aacute

[code: legacy-long-names]
⚠️ WARN Are there any misaligned on-curve points?
* ⚠️ **WARN**

The following glyphs have on-curve points which have potentially incorrect y coordinates:

* cedilla (U+00B8): X=183.0,Y=1.0 (should be at baseline 0?)

* cedilla (U+00B8): X=130.0,Y=1.0 (should be at baseline 0?)

* Ccedilla (U+00C7): X=275.0,Y=1.0 (should be at baseline 0?)

* Ccedilla (U+00C7): X=328.0,Y=1.0 (should be at baseline 0?)

* ccedilla (U+00E7): X=275.0,Y=1.0 (should be at baseline 0?)

* ccedilla (U+00E7): X=328.0,Y=1.0 (should be at baseline 0?)

* Scedilla (U+015E): X=300.0,Y=1.0 (should be at baseline 0?)

* Scedilla (U+015E): X=353.0,Y=1.0 (should be at baseline 0?)

* scedilla (U+015F): X=300.0,Y=1.0 (should be at baseline 0?)

* scedilla (U+015F): X=353.0,Y=1.0 (should be at baseline 0?)

* 7 more.

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

[code: found-misalignments]
⚠️ WARN Are any segments inordinately short?
* ⚠️ **WARN**

The following glyphs have segments which seem very short:

* percent (U+0025) contains a short segment L<<522.0,690.0>--<522.0,700.0>>

* percent (U+0025) contains a short segment L<<93.0,10.0>--<93.0,0.0>>

* slash (U+002F) contains a short segment L<<285.0,740.0>--<285.0,750.0>>

* slash (U+002F) contains a short segment L<<-25.0,-40.0>--<-25.0,-50.0>>

* M (U+004D) contains a short segment L<<195.0,475.0>--<220.0,475.0>>

* M (U+004D) contains a short segment L<<475.0,475.0>--<500.0,475.0>>

* M (U+004D) contains a short segment L<<350.0,319.0>--<345.0,319.0>>

* W (U+0057) contains a short segment L<<278.0,250.0>--<303.0,250.0>>

* W (U+0057) contains a short segment L<<585.0,250.0>--<609.0,250.0>>

* W (U+0057) contains a short segment L<<450.0,345.0>--<440.0,345.0>>

* 76 more.

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

[code: found-short-segments]
⚠️ WARN Do any segments have colinear vectors?
* ⚠️ **WARN**

The following glyphs have colinear vectors:

* bracketleft (U+005B): L<<20.0,738.0>--<20.0,688.0>> -> L<<20.0,688.0>--<20.0,-50.0>>

* bracketright (U+005D): L<<226.0,-50.0>--<226.0,688.0>> -> L<<226.0,688.0>--<226.0,738.0>>

* germandbls (U+00DF): L<<385.0,170.0>--<385.0,323.0>> -> L<<385.0,323.0>--<385.0,358.0>>

* germandbls (U+00DF): L<<385.0,358.0>--<385.0,393.0>> -> L<<385.0,393.0>--<385.0,530.0>>

* germandbls (U+00DF): L<<460.0,0.0>--<245.0,0.0>> -> L<<245.0,0.0>--<40.0,0.0>>
[code: found-colinear-vectors]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines?
* ⚠️ **WARN**

The following glyphs have semi-vertical/semi-horizontal lines:

* h_o_n_g_space_c_ograve_n_space_b_agrave_n (U+E026): L<<3922.0,0.0>--<40.0,-3.0>>
[code: found-semi-vertical]
⚠️ WARN Check the direction of the outermost contour in each glyph
* ⚠️ **WARN**

The following glyphs have a counter-clockwise outer contour:

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

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

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

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

* Adieresis (U+00C4) has a counter-clockwise outer contour

* Adieresis (U+00C4) has a counter-clockwise outer contour

* Adieresis (U+00C4) has a counter-clockwise outer contour

* Agrave (U+00C0) has a counter-clockwise outer contour

* Agrave (U+00C0) has a counter-clockwise outer contour

* C (U+0043) has a counter-clockwise outer contour

* 553 more.

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

[code: ccw-outer-contour]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
* ⚠️ **WARN**

The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.

  • U+02C7 CARON: try adding one of: tifinagh, canadian-aboriginal, yi
  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+02DD DOUBLE ACUTE ACCENT: not included in any glyphset definition
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+215B VULGAR FRACTION ONE EIGHTH: not included in any glyphset definition
  • U+215C VULGAR FRACTION THREE EIGHTHS: not included in any glyphset definition
  • U+215D VULGAR FRACTION FIVE EIGHTHS: not included in any glyphset definition 15 more.

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

Or you can add the above codepoints to one of the subsets supported by the font: cyrillic-ext, greek-ext, latin, latin-ext, vietnamese

[code: unreachable-subsetting]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table.
* ⚠️ **WARN**

This font file does not have a 'meta' table.

[code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID.
* ⚠️ **WARN**

OS/2 VendorID value ' ' is not yet recognized. 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: unknown]
ℹ️ INFO List all superfamily filepaths
* ℹ️ **INFO**

.

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

This font contains the following optional tables:

- loca
[code: optional-tables]
ℹ️ INFO EPAR table present in font?
* ℹ️ **INFO**

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

[code: lacks-EPAR]
ℹ️ INFO Show hinting filesize impact.
* ℹ️ **INFO**

Hinting filesize impact:

Xuong.ttf
Dehinted Size 53.8kb
Hinted Size 54.3kb
Increase 492 bytes
Change 0.9 %
[code: size-impact]
ℹ️ INFO Font has old ttfautohint applied?
* ℹ️ **INFO**

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

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

All of the fonts lack a STAT table.

[code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 13 16 134 6 81 0
0% 0% 5% 6% 54% 2% 32% 0%

Note: The following loglevels were omitted in this report:

TruongNguyenHuy commented 6 months ago

Hello @emmamarichal

I saw your message, and I edited and added the glyphs you requested.

I hope you review my font, and give me a reply as soon as possible. Besides, I also hope you can help me solve the errors, because I'm not familiar with those issues.

Thank you for everything, have a nice day.

emmamarichal commented 6 months ago

Yes I'll help for sure! no problem :)

davelab6 commented 1 month ago

@emmamarichal please could you take another review pass on this so we can decide how to move forwards :)

emmamarichal commented 1 day ago

Sorry @davelab6 I missed that comment!

@TruongNguyenHuy, Thank you for the update. There is still the Germandbls missing (the cap one), that is now mandatory in the glyphset. I can solve the v-metrics related fails + some other related to a more engineering part.

Just to let you know: We need to onboard fonts with a Regular style. Here, we have only one style, which is a Bold. We will have to onboard it under that name: Xuong One, in case you want to add later, a more complete family, with an actual Regular.

FontBakery report

fontbakery version: 0.13.0a3

Check results

[29] Xuong-Regular.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs.
* 🔥 **FAIL**

The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+013C: LATIN SMALL LETTER L WITH CEDILLA U+013B: LATIN CAPITAL LETTER L WITH CEDILLA
U+0259: LATIN SMALL LETTER SCHWA U+018F: LATIN CAPITAL LETTER SCHWA
U+1E20: LATIN CAPITAL LETTER G WITH MACRON U+1E21: LATIN SMALL LETTER G WITH MACRON
[code: missing-case-counterparts]
🔥 FAIL Checking OS/2 usWinAscent & usWinDescent.
* 🔥 **FAIL**

OS/2.usWinAscent value should be equal or greater than 1062, but got 900 instead

[code: ascent]
🔥 FAIL Checking Vertical Metric Linegaps.
* 🔥 **FAIL**

hhea lineGap is not equal to 0.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, all messages from this check are considered FAILs.

[code: hhea]
🔥 FAIL Font contains '.notdef' as its first glyph?
* 🔥 **FAIL**

The '.notdef' glyph should contain a drawing, but it is blank.

[code: notdef-is-blank]
🔥 FAIL Checking OS/2 Metrics match hhea Metrics.
* 🔥 **FAIL**

OS/2 sTypoAscender (900) and hhea ascent (750) must be equal.

[code: ascender]
🔥 FAIL Font contains glyphs for whitespace characters?
* 🔥 **FAIL**

Whitespace glyph missing for codepoint 0x00A0.

[code: missing-whitespace-glyph-0x00A0]
🔥 FAIL Shapes languages in all GF glyphsets.
* 🔥 **FAIL**

GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̃, ◌̆, ◌̉, ◌̛, ◌̣ vi_Latn (Vietnamese)
Some mark glyphs were missing: ◌̀, ◌́, ◌̈, ◌̧ ca_Latn (Catalan)
Some base glyphs were missing: Ě, ě cs_Latn (Czech)
Some mark glyphs were missing: ◌́, ◌̊, ◌̌ cs_Latn (Czech)
Shaper produced a .notdef cs_Latn (Czech), de_Latn (German), lv_Latn (Latvian), nl_Latn (Dutch), pl_Latn (Polish) and tr_Latn (Turkish)
Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̈ cy_Latn (Welsh), it_Latn (Italian) and nl_Latn (Dutch)
Some mark glyphs were missing: ◌́, ◌̊ da_Latn (Danish)
Some base glyphs were missing: ẞ de_Latn (German)
Some mark glyphs were missing: ◌̀, ◌́, ◌̈ de_Latn (German)
Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̃, ◌̈, ◌̧ en_Latn (English) and pt_Latn (Portuguese)
Some mark glyphs were missing: ◌́, ◌̃, ◌̈ es_Latn (Spanish)
Some mark glyphs were missing: ◌̃, ◌̈, ◌̊, ◌̌ fi_Latn (Finnish)
Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̈, ◌̧ fr_Latn (French)
Some mark glyphs were missing: ◌́, ◌̌ hr_Latn (Croatian)
Some mark glyphs were missing: ◌́, ◌̈, ◌̋ hu_Latn (Hungarian)
Some mark glyphs were missing: ◌́, ◌̈, ◌̨ is_Latn (Icelandic)
Some mark glyphs were missing: ◌̄, ◌̇, ◌̌, ◌̨ lt_Latn (Lithuanian)
Some base glyphs were missing: Ļ lv_Latn (Latvian)
Some mark glyphs were missing: ◌̄, ◌̌, ◌̧ lv_Latn (Latvian)
Some mark glyphs were missing: ◌̀, ◌̂, ◌̇ mt_Latn (Maltese)
Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̈, ◌̊ nb_Latn (Norwegian Bokmål)
Some base glyphs were missing: ÍJ́, íj́ nl_Latn (Dutch)
Some base glyphs were missing: Ś, ś, Ź, ź pl_Latn (Polish)
Some mark glyphs were missing: ◌́, ◌̇, ◌̨ pl_Latn (Polish)
Some mark glyphs were missing: ◌̂, ◌̆, ◌̦, ◌̧ ro_Latn (Romanian)
Some mark glyphs were missing: ◌́, ◌̂, ◌̈, ◌̌ sk_Latn (Slovak)
Some mark glyphs were missing: ◌̈, ◌̧ sq_Latn (Albanian)
Some mark glyphs were missing: ◌̀, ◌́, ◌̈, ◌̊ sv_Latn (Swedish)
Some base glyphs were missing: İ, ı tr_Latn (Turkish)
Some mark glyphs were missing: ◌̂, ◌̆, ◌̇, ◌̈, ◌̦, ◌̧ tr_Latn (Turkish)
[code: failed-language-shaping] * ⚠️ **WARN**

GF_Phonetics_SinoExt glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: Ě, ě cs_Latn (Czech)
Some auxiliary glyphs were missing: ẞ de_Latn (German)
Some auxiliary glyphs were missing: Ļ lv_Latn (Latvian)
Some auxiliary glyphs were missing: ÍJ́, íj́ nl_Latn (Dutch)
Some auxiliary glyphs were missing: Ś, ś, Ź, ź pl_Latn (Polish)
Some auxiliary glyphs were missing: İ, ı tr_Latn (Turkish)
[code: warning-language-shaping]
🔥 FAIL Checking OS/2 fsType does not impose restrictions.
* 🔥 **FAIL**

In this font fsType is set to 8 meaning that: The font may be embedded but must only be installed temporarily on other systems.

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 glyph coverage.
* 🔥 **FAIL**

Missing required codepoints:

- 0x00A0 (NO-BREAK SPACE)

- 0x00AA (FEMININE ORDINAL INDICATOR)

- 0x00BA (MASCULINE ORDINAL INDICATOR)

- 0x011A (LATIN CAPITAL LETTER E WITH CARON)

- 0x011B (LATIN SMALL LETTER E WITH CARON)

- 0x0130 (LATIN CAPITAL LETTER I WITH DOT ABOVE)

- 0x0131 (LATIN SMALL LETTER DOTLESS I)

- 0x013B (LATIN CAPITAL LETTER L WITH CEDILLA)

- 0x015A (LATIN CAPITAL LETTER S WITH ACUTE)

- 0x015B (LATIN SMALL LETTER S WITH ACUTE)

- 18 more.

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

[code: missing-codepoints]
🔥 FAIL Check font follows the Google Fonts vertical metric schema
* 🔥 **FAIL**

OS/2.sTypoLineGap is "190" it should be 0

[code: bad-OS/2.sTypoLineGap] * 🔥 **FAIL**

hhea.lineGap is "100" it should be 0

[code: bad-hhea.lineGap] * 🔥 **FAIL**

The sum of hhea.ascender + abs(hhea.descender) + hhea.lineGap is 1100 when it should be at least 1200

[code: bad-hhea-range]
⚠️ WARN Does GPOS table have kerning information? This check skips monospaced fonts as defined by post.isFixedPitch value
* ⚠️ **WARN**

GPOS table lacks kerning information.

[code: lacks-kern-info]
⚠️ WARN Check accent of Lcaron, dcaron, lcaron, tcaron
* ⚠️ **WARN**

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

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

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

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

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

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

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

[code: decomposed-outline]
⚠️ WARN Check if each glyph has the recommended amount of contours.
* ⚠️ **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: b  Contours detected: 3    Expected: 2

- Glyph name: e Contours detected: 1    Expected: 2

- Glyph name: g Contours detected: 1    Expected: 2 or 3

- Glyph name: i Contours detected: 1    Expected: 2

- Glyph name: j Contours detected: 1    Expected: 2

- Glyph name: r Contours detected: 2    Expected: 1

- Glyph name: ae    Contours detected: 2    Expected: 3

- Glyph name: egrave    Contours detected: 2    Expected: 3

- Glyph name: eacute    Contours detected: 2    Expected: 3

- Glyph name: ecircumflex   Contours detected: 2    Expected: 3

- 58 more.

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

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

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

Width = 395: lessequal, less, greater, greaterequal

Width = 562: logicalnot

Width = 410: multiply

[code: width-outliers]
⚠️ WARN Check font contains no unreachable glyphs
* ⚠️ **WARN**

The following glyphs could not be reached by codepoint or substitution rules:

- A_V

- V_A

- a_v

- b_aacute_space_c_h_aacute_y

- c_agrave_space_r_aacute

- c_h_agrave_space_b_aacute

- c_h_u_y_ecircumflex_n

- c_h_u_y_ecircumflex_n.ss02

- c_h_uacute_space_yacute

- c_ograve_n_space_b_agrave_n_space_n_egrave

- 54 more.

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

[code: unreachable-glyphs]
⚠️ WARN Glyph names are all valid?
* ⚠️ **WARN**

The following glyph names may be too long for some legacy systems which may expect a maximum 31-characters length limit: c_ograve_n_space_b_agrave_n_space_n_egrave, h_o_n_g_space_c_ograve_n_space_b_agrave_n, uni0063006F00690020006300681EEB006E0067, uni00631EA3006E00680020006200E1006F, uni00631EED00610020006800E0006E0067, uni00631EED00610020006800E0006E0067.ss02, uni006D00691EC1006E0020007400E20079, uni007300F4006E00670020006E01B01EDB0063, uni007800751ED3006E00670020006200610020006C00E1, uni011100F3006E0067002000631EED0061, uni1EDF0020011100E200790020006300F3 and uni1EDF0020011100E200790020006300F3.ss02

[code: legacy-long-names]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
* ⚠️ **WARN**

Family metadata at . does not have an article.

[code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
* ⚠️ **WARN**

The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.

  • U+02C7 CARON: try adding one of: yi, canadian-aboriginal, tifinagh
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
  • U+02DD DOUBLE ACUTE ACCENT: not included in any glyphset definition
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+215B VULGAR FRACTION ONE EIGHTH: not included in any glyphset definition
  • U+215C VULGAR FRACTION THREE EIGHTHS: not included in any glyphset definition
  • U+215D VULGAR FRACTION FIVE EIGHTHS: not included in any glyphset definition 15 more.

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

Or you can add the above codepoints to one of the subsets supported by the font: latin, latin-ext, vietnamese

[code: unreachable-subsetting]
⚠️ WARN Are there any misaligned on-curve points?
* ⚠️ **WARN**

The following glyphs have on-curve points which have potentially incorrect y coordinates:

* uni1EB2 (U+1EB2): X=337.0,Y=898.0 (should be at ascender 900?)

* uni1EB3 (U+1EB3): X=337.0,Y=898.0 (should be at ascender 900?)

* uni03060309: X=274.0,Y=898.0 (should be at ascender 900?)

* cedilla (U+00B8): X=130.0,Y=1.0 (should be at baseline 0?)

* cedilla (U+00B8): X=183.0,Y=1.0 (should be at baseline 0?)

* cedilla (U+00B8): X=130.0,Y=1.0 (should be at baseline 0?)
[code: found-misalignments]
⚠️ WARN Do outlines contain any jaggy segments?
* ⚠️ **WARN**

The following glyphs have jaggy segments:

* uni007100751EA50074: L<<422.0,159.0>--<472.0,230.0>>/L<<472.0,230.0>--<408.0,140.0>> = 0.26287764431999494
[code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines?
* ⚠️ **WARN**

The following glyphs have semi-vertical/semi-horizontal lines:

* h_o_n_g_space_c_ograve_n_space_b_agrave_n: L<<3922.0,0.0>--<40.0,-3.0>>
[code: found-semi-vertical]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table.
* ⚠️ **WARN**

This font file does not have a 'meta' table.

[code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID.
* ⚠️ **WARN**

OS/2 VendorID value 'NONE' is not yet recognized. 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: unknown]
ℹ️ INFO List all superfamily filepaths
* ℹ️ **INFO**

.

[code: family-path]
ℹ️ INFO Show hinting filesize impact.
* ℹ️ **INFO**

Hinting filesize impact:

Xuong-Regular.ttf
Dehinted Size 53.5kb
Hinted Size 121.7kb
Increase 68.2kb
Change 127.3 %
[code: size-impact]
ℹ️ INFO Font contains all required tables?
* ℹ️ **INFO**

This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- gasp
[code: optional-tables]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
* ℹ️ **INFO**

This font doesn't have an ARTICLE.en_us.html file.

[code: missing-article]
ℹ️ INFO EPAR table present in font?
* ℹ️ **INFO**

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

[code: lacks-EPAR]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
* ℹ️ **INFO**

These are the ppm ranges declared on the gasp table:

PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
[2] Family checks
🔥 FAIL OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
* 🔥 **FAIL**

OS/2.fsSelection bit 7 (USE_TYPO_METRICS) wasNOT set in the following fonts: ['Xuong-Regular.ttf'].

[code: missing-os2-fsselection-bit7]
ℹ️ INFO Check axis ordering on the STAT table.
* ℹ️ **INFO**

All of the fonts lack a STAT table.

[code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 11 13 127 7 95 0
0% 0% 4% 5% 50% 3% 38% 0%

Note: The following loglevels were omitted in this report:

TruongNguyenHuy commented 1 day ago

Hello @emmamarichal

I checked again and changed my font to Regular, but I only want my font to have 1 style so I don't have Bold. As for the Germandbls character, I checked again and found that I already have this character in my font, I hope you can check it again for me.

If anything is needed, please let me know.

Thanks.

emmamarichal commented 1 day ago

Hi @TruongNguyenHuy, Yes, you have germandbls (the lowercase, unicode 00DF), but we need also the cap one called Germandbls (unicode 1E9E)

Image

Here is a good ressource about it: https://www.lucasfonts.com/learn/1E9E

TruongNguyenHuy commented 1 day ago

@emmamarichal

In the software I have designed it here.

Image

emmamarichal commented 1 day ago

I took that file: https://github.com/TruongNguyenHuy/Xuong/blob/main/sources/Xuong.glyphs It's not the good one to review?

TruongNguyenHuy commented 1 day ago

@emmamarichal I have edited the file again, please try to check it again. Thank you very much.

emmamarichal commented 1 day ago

Thank you! The project is planned for Q1, I'll work on it at that time and let you know if I found issues :)

TruongNguyenHuy commented 1 day ago

Thanks for helping me.