google / fonts

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

Add: Xuong Typeface #7610

Open TruongNguyenHuy opened 2 months ago

TruongNguyenHuy commented 2 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 2 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 2 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 2 months ago

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