Skip to content
This repository has been archived by the owner on Apr 7, 2024. It is now read-only.

Add source for Noto Sans Nüshu #188

Merged
merged 1 commit into from
Apr 16, 2020

Conversation

arrowtype
Copy link
Contributor

@arrowtype arrowtype commented Apr 15, 2020

This adds the GlyphsApp source for https://github.com/LisaHuang2017/noto-sans-nushu by @LisaHuang2017.

Question:

  • I see that quite a few of the Noto fonts with Glyphs sources are accompanied by separate files for GDEF, GPOS, GSUB features. Is there a typical procedure followed to produce these?

@punchcutter
Copy link
Contributor

The separate GDEF/GPOS/GSUB are Monotype format OpenType. There’s no need to have them in most cases, but for various reasons many of them were necessary at the time.

@arrowtype
Copy link
Contributor Author

Cool; thanks for that information, @punchcutter!

@punchcutter
Copy link
Contributor

This file needs a little cleanup and some added info. I did a quick check and added things like copyright, languagesystem, Non-plane 0 in unicodeRanges. I also removed all of the unnecessary layers.
NotoSansNushu.glyphs.zip

@arrowtype
Copy link
Contributor Author

Thanks, that's very helpful!

I realize those are probably all fairly obvious steps, but are those requirements documented somewhere? It would be awesome if they were included in the FontBakery checks at some point. :)

@arrowtype
Copy link
Contributor Author

Actually, I'm seeing that unicodeRanges includes several ranges that aren't present in this specific source (e.g. Basic Latin). Are those referring to Noto in general, or should this only say Non-Plane 0?

@punchcutter
Copy link
Contributor

I don't think there are any specific requirements anywhere, but there have just been some general things done along the way over the years and years and years this project has been going. FontBakery is also a new thing because before we were using noto_lint from the nototools repo. noto_lint would have reported half the things I did, but I don't think there are checks anywhere for extraneous layers except in fontmake which will tell you when you run it. There were a ton of lines like

WARNING:glyphsLib.builder.builders.UFOBuilder:Noto Sans Nushu Regular: Glyph .notdef, layer Regular: Duplicate glyph layer name
WARNING:glyphsLib.builder.builders.UFOBuilder:Noto Sans Nushu Regular: Glyph .notdef, layer Regular: Duplicate glyph layer name
WARNING:glyphsLib.builder.builders.UFOBuilder:Noto Sans Nushu Regular: Glyph .notdef, layer Regular: Duplicate glyph layer name
WARNING:glyphsLib.builder.builders.UFOBuilder:Noto Sans Nushu Regular: Glyph .notdef, layer Regular: Duplicate glyph layer name
WARNING:glyphsLib.builder.builders.UFOBuilder:Noto Sans Nushu Regular: Glyph .notdef, layer Regular: Duplicate glyph layer name
WARNING:glyphsLib.builder.builders.UFOBuilder:Noto Sans Nushu Regular: Glyph .notdef, layer Regular: Duplicate glyph layer name
WARNING:glyphsLib.builder.builders.UFOBuilder:Noto Sans Nushu Regular: Glyph .notdef, layer Regular: Duplicate glyph layer name
WARNING:glyphsLib.builder.builders.UFOBuilder:Noto Sans Nushu Regular: Glyph .notdef, layer Regular: Duplicate glyph layer name
WARNING:glyphsLib.builder.builders.UFOBuilder:Noto Sans Nushu Regular: Glyph .notdef, layer SemiBold: Duplicate glyph layer name
WARNING:glyphsLib.builder.builders.UFOBuilder:Noto Sans Nushu Regular: Glyph .notdef, layer SemiBold: Duplicate glyph layer name
WARNING:glyphsLib.builder.builders.UFOBuilder:Noto Sans Nushu Regular: Glyph .notdef, layer SemiBold: Duplicate glyph layer name
WARNING:glyphsLib.builder.builders.UFOBuilder:Noto Sans Nushu Regular: Glyph .notdef, layer SemiBold: Duplicate glyph layer name
WARNING:glyphsLib.builder.builders.UFOBuilder:Noto Sans Nushu Regular: Glyph .notdef, layer SemiBold: Duplicate glyph layer name
WARNING:glyphsLib.builder.builders.UFOBuilder:Noto Sans Nushu Regular: Glyph .notdef, layer SemiBold: Duplicate glyph layer name
WARNING:glyphsLib.builder.builders.UFOBuilder:Noto Sans Nushu Regular: Glyph .notdef, layer SemiBold: Duplicate glyph layer name
WARNING:glyphsLib.builder.builders.UFOBuilder:Noto Sans Nushu Regular: Glyph .notdef, layer SemiBold: Duplicate glyph layer name

One thing for sure is you should never export from Glyphs because it's meaningless since the actual fonts will be built with fontmake. Also all sources are being moved to UFO so a Glyphs source file isn't necessary anymore.

Most of the fonts have more than just Non-Plane 0. I don't remember right now if there were specific problems, but I wouldn't be surprised if not having the other Unicode ranges might cause problems somewhere.

@arrowtype
Copy link
Contributor Author

Okay, thanks, that is helpful as well.

Yup, it makes sense to remove unused layers – those were just on whitespace characters, and not in actual Nushü glyphs.

I have built the TTF output with FontMake in this very simple build script:

https://github.com/arrowtype/noto-sans-nushu/blob/21ee589227781531d0a60567b0f102193fe444d5/mastering/build.sh

But, I'm sure updating to your cleaned up source will improve the TTF further.

Wouldn't including drawn glyphs that are outside the Nushü range cause more problems than excluding them? For instance, if we did include Latin Basic glyphs here, it might be a problem if they were ever adjusted/improved in the main Noto Sans font. Or, is this separate from what information we include in the unicodeRanges parameter?

@punchcutter
Copy link
Contributor

unicodeRanges just tells software what kind of glyphs are in the font, but even if there are no such glyphs it doesn't really do anything. So there are no glyphs for Latin Basic, but there are still common glyphs like space which is not Non-Plane 0. So unicodeRanges just says "there's supposedly support for this script". There are definitely cases in older software (and probably newer as well because people never learn) where this info is expected and I wouldn't be surprised if something somewhere failed if this was only set to Non-Plane 0.

@twardoch
Copy link

I remember in early webfont days, CSS unicode-ranges support would not work in a browser (possibly IE) for a given range if a bit wasn't set.

@arrowtype
Copy link
Contributor Author

Thanks again for your helpful feedback, @punchcutter! I've updated the commit with the fixed source. Please let me know if there is anything else to do here (e.g. should I run noto_lint on this, or does someone else / someone internal do that?).

@arrowtype
Copy link
Contributor Author

arrowtype commented Apr 15, 2020

Actually, running this through the FontBakery checks for Google Fonts in general, a few issues are reported that seemingly would be good to fix further. Of course, Noto has some slightly different standards, but I will sort this out before this should be merged.

These two are obvious, and I'll fix them now:

🔥 FAIL: Checking font version fields (head and name table).
WARN: Font contains .notdef as first glyph?

These I am uncertain on:

🔥 FAIL: Check copyright namerecords match license file.
  • com.google.fonts/check/name/license
  • 🔥 FAIL License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 3 (WINDOWS) is not specified for that. Value was: "This Font Software is licensed under the SIL Open Font License, Version 1.1. This Font Software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the SIL Open Font License for the specific language, permissions and limitations governing your use of this Font Software." 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: http://scripts.sil.org/OFL" [code: wrong]
🔥 FAIL: "License URL matches License text on name table?
  • com.google.fonts/check/name/license_url
  • 🔥 FAIL A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry. 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. [code: no-license-found]
🔥 FAIL: Copyright notices match canonical pattern in fonts
  • com.google.fonts/check/font_copyright
  • 🔥 FAIL Name Table entry: Copyright notices should match a pattern similar to: 'Copyright 2017 The Familyname Project Authors (git url)'
    But instead we have got: 'Copyright 2020 Google Inc. All Rights Reserved.'

@punchcutter
Copy link
Contributor

That's odd. .notdef is the first glyph so not sure why that warning is there. Font version should also be fine. The fails also should be fine, but I didn't get any of those on my end. Most of that info I copied from a recent Noto font to be sure they match things like copyright, license, etc. noto_lint is barely being maintained and has a lot of hard-coded info in it which takes some work to update. I've been trying to keep on top of it, but it seems hardly anyone cares and fontbakery is the new thing. There are some good things about noto_lint that would be nice to get into fontbakery, but maybe it's not highest priority right now.

@arrowtype
Copy link
Contributor Author

arrowtype commented Apr 15, 2020

.notdef is the first glyph so not sure why that warning is there.

It was missing an outline, so I pasted that in from NotoSans-MM.glyphs

Version

This should be the font version for Noto Nushü (which would be 1.000) rather than for Noto as a whole, correct? Or, are new Noto fonts set to 2.000? I've set both a 1.000 in this latest push.

@punchcutter
Copy link
Contributor

Version 1.0 of all Noto is pretty terrible in general so if someone is using a 1.000 or 1.001 font they probably shouldn't be. Things got updated to 2.000 so even though this font is a new one I think it would make more sense for it to be in the same "new" range of 2.000, better ask @marekjez86 to be sure.

@arrowtype
Copy link
Contributor Author

Ahh, okay, that makes sense. Well, I'm happy to use whatever makes sense to Marek. I sent an email to him with that question; hopefully he is able to respond here.

@marekjez86
Copy link
Contributor

marekjez86 commented Apr 15, 2020 via email

@arrowtype
Copy link
Contributor Author

Hmm, I'm not sure what that error might be coming from.

Are you building with

fontmake -o ttf -g <filepath>/src/NotoSansNushu/NotoSansNushu.glyphs

or another build tool?

Here is the current script I'm using to build the output TTF for notofonts/noto-fonts#1710:

https://github.com/arrowtype/noto-sans-nushu/blob/8734e06e8eb6f56e2b6bba369e40843a7dcc715d/mastering/build.sh

Your error has two things that I wonder about (sorry if these seem like dumb questions):

  • src/NotoSansNushu2.glyphs has a 2 that I don't expect. Is it the right file?
  • There is only a single master and single instance (Regular, 400), in the source. Are you perhaps attempting to build a variable font from it?

@marekjez86
Copy link
Contributor

marekjez86 commented Apr 15, 2020 via email

@marekjez86
Copy link
Contributor

marekjez86 commented Apr 15, 2020 via email

@punchcutter
Copy link
Contributor

The weight values are inconsistent between Master and Instance. They should be the same value. In most fonts with multiple weights the Regular is somewhere around 86-100. Here it's 400, but the Instance also needs to match. I'd set both to 90 or 100 with the instance weight class custom parameter set to 400.

@marekjez86
Copy link
Contributor

marekjez86 commented Apr 15, 2020 via email

@punchcutter
Copy link
Contributor

The file I sent fixed the missing encoding for CR and NULL. There is no GPOS or GSUB so that doesn't matter. Intersecting outlines isn't a problem. The Use Typo Metrics parameter can be deleted.

@arrowtype
Copy link
Contributor Author

Shoot, I had tried to copy all the changes from Zachary’s file into the source from Lisa’s repo, then use that. But, I should have used a proper diff to make sure I wasn’t missing anything important. 😐 Zachary, should I go back and diff now? I want to make sure we don’t miss any improvements, but I’m also hoping to understand everything being updated, in case it is useful later on. Sorry for the extra loop that caused.

I will update those missing code points and remove the use typo metrics, and diff to see whether there’s anything more that should be covered.

@punchcutter
Copy link
Contributor

I think that’s all.

@marekjez86
Copy link
Contributor

marekjez86 commented Apr 16, 2020 via email

Fix font info in Noto Sans Nushu

add outline to .notdef, match version numbers

fix additional data for checks, see PR 188
@arrowtype
Copy link
Contributor Author

Okay, I just checked a diff of the two files in VS Code to be certain and found a couple of few diffs:

  • my file had different widths for NULL (should have been 0) and CR (should have been 260)
  • my file didn't have panose values for the master; just for the instance
  • Zachary's file seems to have an outline issue in the .notdef (overlapping points), but it's possible I somehow introduced this on my end
  • my file had the weight value mismatch between the master and instance. I don't think it makes a difference whether it's 400 or 100 so long as this matches between master & instance, but if other Noto sources use 100, it's reasonable to match that, so I did
  • version numbers are different, but it sounds like 1.000 works fine

I removeduse typo metrics in this file (it was there because Google Fonts standards suggest using it, but I don't think it should matter if hhea & win values match typo).

I've updated the latest commit and force pushed to keep this clean. Let me know if there's anything else I can do here. Thanks for all the insight on this one, @punchcutter & @marekjez86!

@marekjez86 marekjez86 merged commit c268e48 into notofonts:master Apr 16, 2020
@LisaHuang2017
Copy link

It's so amazing to see people volunteerly help on this project! I learned some new stuff these days :D Thank you so much!

@marekjez86 marekjez86 changed the title Add source for Noto Sans Nushü Add source for Noto Sans Nüshu Apr 19, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants