-
Notifications
You must be signed in to change notification settings - Fork 89
Conversation
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. |
Cool; thanks for that information, @punchcutter! |
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. |
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. :) |
Actually, I'm seeing that |
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
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. |
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: 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 |
|
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. |
0b54376
to
5fde2f1
Compare
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?). |
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.
🔥 FAIL: "License URL matches License text on name table?
🔥 FAIL: Copyright notices match canonical pattern in fonts
|
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. |
5fde2f1
to
3e186da
Compare
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 |
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. |
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. |
Version 1.0 is fine -- this is a brand new script so it's not an issue.
However, when I build it though I get
INFO:fontmake.font_project:Building master UFOs and designspace from Glyphs
source
INFO:glyphsLib.classes:Parsing "src/NotoSansNushu2.glyphs" file into
<GSFont>
INFO:fontmake.font_project:Interpolating master UFOs from designspace
fontmake: Error: In 'src/NotoSansNushu2.glyphs' ->
'master_ufo/NotoSansNushu-Regular.designspace' ->
'master_ufo/NotoSansNushu-Regular.designspace': Preparing the Designspace
for interpolation failed: Can't generate UFOs from this Designspace because
there is no default master source at location 'Weight: 100.0'. Check that
all 'default' values of all axes together point to a single actual master
source. For axes with a mapping, the 'default' values should have an
'input="..."' map value, where the corresponding 'output="..."' value then
points to the master source.
I'll look at it in 20 min though
…On Wed, Apr 15, 2020 at 12:23 PM arrowtype ***@***.***> wrote:
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.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#188 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADFUS75R23F7ACN7BAIJUWLRMYCUFANCNFSM4MIGICVQ>
.
|
Hmm, I'm not sure what that error might be coming from. Are you building with
or another build tool? Here is the current script I'm using to build the output TTF for notofonts/noto-fonts#1710: Your error has two things that I wonder about (sorry if these seem like dumb questions):
|
I tried to generate variable (it should generate something :-)).
I also used ./build from https://github.com/googlefonts/noto-source which
in turn calls shell function from util.sh which in turn generates the
following command
fontmake -g src/NotoSansNushu2.glyphs -o ttf otf -i
try (with the right source file name)
... in my case it generated the following error
...fontmake -g src/NotoSansNushu2.glyphs -o otf -i
INFO:fontmake.font_project:Building master UFOs and designspace from Glyphs
source
INFO:glyphsLib.classes:Parsing "src/NotoSansNushu2.glyphs" file into
<GSFont>
INFO:fontmake.font_project:Interpolating master UFOs from designspace
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/bin/fontmake",
line 8, in <module>
sys.exit(main())
File
"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/fontmake/__main__.py",
line 425, in main
project.run_from_glyphs(glyphs_path, **args)
File
"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/fontmake/font_project.py",
line 672, in run_from_glyphs
self.run_from_designspace(designspace_path, **kwargs)
File
"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/fontmake/font_project.py",
line 889, in run_from_designspace
**kwargs,
File
"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/fontmake/font_project.py",
line 932, in _run_from_designspace_static
expand_features_to_instances=expand_features_to_instances,
File
"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/fontmake/font_project.py",
line 707, in interpolate_instance_ufos
designspace, round_geometry=round_instances
File
"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/fontmake/instantiator.py",
line 185, in from_designspace
"Can't generate UFOs from this designspace: no default font."
fontmake.instantiator.InstantiatorError: Can't generate UFOs from this
designspace: no default font.
…On Wed, Apr 15, 2020 at 1:14 PM arrowtype ***@***.***> wrote:
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
<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?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#188 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADFUS76NK76KNK6UND2LIMDRMYIRHANCNFSM4MIGICVQ>
.
|
2 in my file name is just to differentiate PR Nushu from the one that I
took from Lisa's github
On Wed, Apr 15, 2020 at 1:40 PM Marek Z Jeziorek 老马 <[email protected]>
wrote:
…
I tried to generate variable (it should generate something :-)).
I also used ./build from https://github.com/googlefonts/noto-source which
in turn calls shell function from util.sh which in turn generates the
following command
fontmake -g src/NotoSansNushu2.glyphs -o ttf otf -i
try (with the right source file name)
... in my case it generated the following error
...fontmake -g src/NotoSansNushu2.glyphs -o otf -i
INFO:fontmake.font_project:Building master UFOs and designspace from
Glyphs source
INFO:glyphsLib.classes:Parsing "src/NotoSansNushu2.glyphs" file into
<GSFont>
INFO:fontmake.font_project:Interpolating master UFOs from designspace
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/bin/fontmake",
line 8, in <module>
sys.exit(main())
File
"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/fontmake/__main__.py",
line 425, in main
project.run_from_glyphs(glyphs_path, **args)
File
"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/fontmake/font_project.py",
line 672, in run_from_glyphs
self.run_from_designspace(designspace_path, **kwargs)
File
"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/fontmake/font_project.py",
line 889, in run_from_designspace
**kwargs,
File
"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/fontmake/font_project.py",
line 932, in _run_from_designspace_static
expand_features_to_instances=expand_features_to_instances,
File
"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/fontmake/font_project.py",
line 707, in interpolate_instance_ufos
designspace, round_geometry=round_instances
File
"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/fontmake/instantiator.py",
line 185, in from_designspace
"Can't generate UFOs from this designspace: no default font."
fontmake.instantiator.InstantiatorError: Can't generate UFOs from this
designspace: no default font.
On Wed, Apr 15, 2020 at 1:14 PM arrowtype ***@***.***>
wrote:
> 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
> <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?
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <#188 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/ADFUS76NK76KNK6UND2LIMDRMYIRHANCNFSM4MIGICVQ>
> .
>
|
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. |
More issues that I'd like to considered (or at least answered):
E <cmap/required> b'U+0000 is not mapped in cmap, but it should be (see
https://www.microsoft.com/typography/otspec/recom.htm).'
E <cmap/required> b'U+000D is not mapped in cmap, but it should be (see
https://www.microsoft.com/typography/otspec/recom.htm).'
E <cmap/script_required> b'The following 2 characters are missing from the
font: 0000, 000D.'
E <head/os2/fsselection> b'UseTypoMetrics bit in fsSelection is set, but
should be clear.'
E <paths/intersection> b"The glyph 'u1B1B9' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B1BD' has intersecting outlines:
start and end segments match: (293.0, 141.0)"
E <paths/intersection> b"The glyph 'u1B1BE' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B1DF' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B1E5' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B200' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B20C' has intersecting outlines:
start and end segments match: (453.0, 369.0)"
E <paths/intersection> b"The glyph 'u1B212' has intersecting outlines:
start and end segments match: (293.0, 141.0)"
E <paths/intersection> b"The glyph 'u1B21B' has intersecting outlines:
start and end segments match: (453.0, 369.0)"
E <paths/intersection> b"The glyph 'u1B21C' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B21F' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B22A' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B23A' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B23B' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B240' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B248' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B24B' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B251' has intersecting outlines:
start and end segments match: (471.0, 117.0)"
E <paths/intersection> b"The glyph 'u1B255' has intersecting outlines:
start and end segments match: (313.0, 52.0)"
E <paths/intersection> b"The glyph 'u1B268' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B26D' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B27B' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B282' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B287' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B289' has intersecting outlines:
start and end segments match: (217.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B2AB' has intersecting outlines:
start and end segments match: (336.0, 496.0)"
E <paths/intersection> b"The glyph 'u1B2B4' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B2BA' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B2BB' has intersecting outlines:
start and end segments match: (206.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B2CF' has intersecting outlines:
start and end segments match: (257.0, 45.0)"
E <paths/intersection> b"The glyph 'u1B2D7' has intersecting outlines:
start and end segments match: (614.0, 117.0)"
E <paths/intersection> b"The glyph 'u1B2F2' has intersecting outlines:
start and end segments match: (488.0, 41.0)"
E <paths/intersection> b"The glyph 'u1B2FA' has intersecting outlines:
start and end segments match: (690.0, 326.0)"
E <complex/gpos/missing> b'There is no GPOS table in the font.'
E <complex/gsub/missing> b'There is no GSUB table in the font.'
E <reachable> b'The following 2 glyphs are unreachable in the font: CR (2),
NULL (1).'
…On Wed, Apr 15, 2020 at 2:05 PM Zachary Quinn Scheuren < ***@***.***> wrote:
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.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#188 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADFUS7Z7ZR7OTGWQY5PRE3TRMYOQNANCNFSM4MIGICVQ>
.
|
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. |
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 |
I think that’s all. |
Got it... thanks for the reply and explanations.
Marek
…On Wed, Apr 15, 2020 at 3:47 PM Zachary Quinn Scheuren < ***@***.***> wrote:
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.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#188 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADFUS75QJFFGGU3KN4V5XATRMY2QDANCNFSM4MIGICVQ>
.
|
Fix font info in Noto Sans Nushu add outline to .notdef, match version numbers fix additional data for checks, see PR 188
3e186da
to
2f707eb
Compare
Okay, I just checked a diff of the two files in VS Code to be certain and found a couple of few diffs:
I removed 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! |
It's so amazing to see people volunteerly help on this project! I learned some new stuff these days :D Thank you so much! |
This adds the GlyphsApp source for https://github.com/LisaHuang2017/noto-sans-nushu by @LisaHuang2017.
Question:
GDEF, GPOS, GSUB
features. Is there a typical procedure followed to produce these?