satbyy / go-noto-universal

Noto fonts go universal! Download pan-Unicode, merged Noto fonts according to time of usage (current, ancient) or geographical region (South Asia, SE Asia, Africa-MiddleEast, Europe-Americas).
Other
151 stars 21 forks source link

Go Noto Universal line spacing error #41

Open skipperon opened 2 years ago

skipperon commented 2 years ago

Hi, I think there is an error in line spacing in Go Noto Universal - it is unnaturally big. When I compare it to other fonts and even to NotoSansRegular.ttf (https://github.com/googlefonts/noto-fonts/tree/main/hinted/ttf/NotoSans/NotoSans-Regular.ttf) so the file that is taken to build latin fonts in go-noto-universal. In the picture attached I show the comparison of Line Spacing in MS Word of NotoSansRegular and GoNotoCurrent.ttf: Comparison It is not only the case of MS Word, I checked that in Linux in other programs, there is also unnaturally big line spacing. It makes very uncomfortable to use this font and espacially in programs where I am not able to change it manually.

thipokch commented 2 years ago

I do agree that the line spacing is huge, but it usually happens when you merge multiple languages together. (Some language has extreme ascenders and descenders)

almarklein commented 1 year ago

Would this problem be avoided if using the regional fonts instead of the GoNotoCurrent?

skipperon commented 1 year ago

Yes, but that should be working in GoNotoCurrent, otherwise there is no point in using GoNotoCurrent…

From: Almar Klein @.> Sent: Thursday, October 27, 2022 12:13 PM To: satbyy/go-noto-universal @.> Cc: skipperon @.>; Author @.> Subject: Re: [satbyy/go-noto-universal] Go Noto Universal line spacing error (Issue #41)

Would this problem be avoided if using the regional fonts instead of the GoNotoCurrent?

— Reply to this email directly, view it on GitHub https://github.com/satbyy/go-noto-universal/issues/41#issuecomment-1293301446 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AZREFA2RQHU7T4GGPVJI7PDWFJIRDANCNFSM5YFRKNJA . You are receiving this because you authored the thread. https://github.com/notifications/beacon/AZREFA2ACXTAVINHKGMRPMTWFJIRDA5CNFSM5YFRKNJKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOJULDNRQ.gif Message ID: @. @.> >

stephen0z commented 1 year ago

For you information, it seems Microsoft overcome this by making "UI" (user interface) fonts:

segoeui.ttf - Segoe_UI

It's total number of glyphs is similar to a normal Segoe font, but the ascender and descender are narrower.

I also found that Android (or *nix) are quite smart on line spacing. Only with special glyphs like "Ǻ" appear in a line will that line's spacing changed, otherwise other lines will keep their spacing back to A-Z level. I found it by changing a font's ascender to "A", much lower than the height of "Ǻ", and Android increases the upper height to "Ǻ" automagically when it sees this glyph, ignoring my ascender setting in the font.

satbyy commented 1 year ago

There is already a code snippet in the repo which tweaks line spacing. I will add the command to an "FAQ" section so that people can adjust it as per their wish.

skipperon commented 1 year ago

There is already a code snippet in the repo which tweaks line spacing. I will add the command to an "FAQ" section so that people can adjust it as per their wish.

@satbyy where is this code? I cannot find it...

satbyy commented 1 year ago

@skipperon It is near the end of helper.sh

# Copy line metrics from Noto Sans Regular
download_url "https://github.com/googlefonts/nototools/raw/main/nototools/substitute_linemetrics.py"
python3 ./substitute_linemetrics.py --output=../"$output" ../"$output" NotoSans-Regular.ttf

We copy the line metrics (ascender, descender, etc) from NotoSans-Regular to the final output font. User can pass whatever .ttf as last argument to above script instead of NotoSans-Regular.