Giter Club home page Giter Club logo

go-noto-universal's People

Contributors

dscorbett avatar imran-iq avatar orzogc avatar quantum9innovation avatar satbyy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

go-noto-universal's Issues

Builds are broken (and taking over 6 hours)

I am currently trying to make bold variant of the GoNotoCurrent font (#5).

I /think/ i've got most of it, but unfortunately the build is taking a very long time (much longer than the 20-30 mintues advertised).
Looking at the github actions looks like something changed last week where the build has gone from 20 minutes to 6 hours: https://github.com/satbyy/go-noto-universal/actions/workflows/temporal_fonts.yml

Any ideas of what is going on currently my machine has been stuck on

/home/iiqbal/code/upstream/go-noto-universal/venv/bin/python3 /home/iiqbal/code/upstream/go-noto-universal/venv/bin/pyftsubset --drop-tables+=vhea,vmtx --glyph-names --recommended-glyphs --passthrough-tables --layout-features=aalt,ccmp,dlig,fwid,halt,hwid,kern,liga,locl,palt,pwid --unicodes-file=Unihan_codepoints.txt --unicodes=U+3000-303F,U+3100-312F,U+31A0-31BF,U+31C0-31EF,U+FE30-FE4F, --output-file=NotoSansCJKscSubset-Regular.otf NotoSansCJKsc-Regular.otf

for about an hour now

Go Noto Universal line spacing error

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.

cmap overflow? cannot merge CJK with GoNotoContemporary.ttf

Latest CI builds create GoNotoContemporary.ttf which is a superset of all regional fonts (Asia + Africa + Europe + Americas), excluding historical scripts (and sign-writing). The only missing region is East Asia, aka CJK.

It has plenty of room for expansion, as of now it encompasses 11706 codepoints and 34256 glyphs.

otfinfo -u GoNotoContemporary.ttf | wc -l
11706
otfinfo -g GoNotoContemporary.ttf | wc -l
34256

So there is space for at least (65K - 34K) ~ 30K glyphs before we max out the 65535 glyph limit.

We also generate GoNotoCJKCore.otf which has about 10K code points and 20K glyphs, so it should all nicely fit-in the same font.

However, the idea fails because cmap table format 4 hits the 65535 limit.

otf2ttf GoNotoCJKCore2005.otf
pyftmerge --verbose --drop-tables+=vmtx,vhea GoNotoContemporary.ttf GoNotoCJKCore2005.ttf
# ... 
File "/home/ubuntu/projects/go-noto-universal/venv_fonty/lib/python3.8/site-packages/fontTools/ttLib/tables/_c_m_a_p.py", line 172, in compile
    chunk = table.compile(ttFont)
  File "/home/ubuntu/projects/go-noto-universal/venv_fonty/lib/python3.8/site-packages/fontTools/ttLib/tables/_c_m_a_p.py", line 904, in compile
    header = struct.pack(cmap_format_4_format, self.format, length, self.language,
struct.error: 'H' format requires 0 <= number <= 65535

The actual length is about 66600, so just a little over 65K. The aim of this issue/ticket is to figure out a way to overcome the cmap limit.

What is strange is that the original, non-subsetted CJK font itself has cmap length about 40K but the subsetted CJK has 51K cmap length!

A brute-force way I found is to use --no-layout-closure while subsetting, but it also removes locl feature, so JP or KR cannot use a CN font.

GoNotoCurrent does not support Korean symbols

I planned to replace the UniFont by GoNotoCurrent for PDF embedding.

This works very well, but I miss the Korean signs in GoNotoCurrent - there are included in GoNotoCJKCore, but GoNotoCJKCore misses several other languages.

Is this an Error?
Or , if not How Can I add Korean signs to GoNotoCurrent.

Mark classes and mark sets are not merged correctly

Fonts with lookups that use mark classes or mark sets are not merged correctly. If, say, a lookup in a source font uses mark set 0, the corresponding lookup in the merged font will also use mark set 0, even though the merged font’s mark set 0 might come from a different source font.

For example, here is <U+11C72, U+11C92, U+11C93> in Go Noto East Asia:
𑱲𑲒𑲓
And here it is in Noto Sans Marchen:
𑱲𑲒𑲓

Build error

Hey, I cloned the repo and followed the instructions to build temporal fonts, but I get

Attempting to fix OTLOffsetOverflowError ('GSUB', 'LookupIndex:', 2406, 'SubTableIndex:', None, 'ItemName:', None, 'ItemIndex:', None)
Traceback (most recent call last):
  File "/home/ubuntu/go-noto-universal/venv_fonty/lib/python3.10/site-packages/fontTools/ttLib/tables/otBase.py", line 440, in getData
    items[i] = packUShort(item.subWriter.pos - pos)
  File "/home/ubuntu/go-noto-universal/venv_fonty/lib/python3.10/site-packages/fontTools/ttLib/tables/otBase.py", line 868, in packUShort
    return struct.pack(">H", value)
struct.error: 'H' format requires 0 <= number <= 65535

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ubuntu/go-noto-universal/venv_fonty/bin/pyftmerge", line 8, in <module>
    sys.exit(main())
  File "/home/ubuntu/go-noto-universal/venv_fonty/lib/python3.10/site-packages/fontTools/misc/loggingTools.py", line 375, in wrapper
    return func(*args, **kwds)
  File "/home/ubuntu/go-noto-universal/venv_fonty/lib/python3.10/site-packages/fontTools/merge/__init__.py", line 244, in main
    font.save(options.output_file)
  File "/home/ubuntu/go-noto-universal/venv_fonty/lib/python3.10/site-packages/fontTools/ttLib/ttFont.py", line 216, in save
    writer_reordersTables = self._save(tmp)
  File "/home/ubuntu/go-noto-universal/venv_fonty/lib/python3.10/site-packages/fontTools/ttLib/ttFont.py", line 263, in _save
    self._writeTable(tag, writer, done, tableCache)
  File "/home/ubuntu/go-noto-universal/venv_fonty/lib/python3.10/site-packages/fontTools/ttLib/ttFont.py", line 713, in _writeTable
    tabledata = self.getTableData(tag)
  File "/home/ubuntu/go-noto-universal/venv_fonty/lib/python3.10/site-packages/fontTools/ttLib/ttFont.py", line 735, in getTableData
    return self.tables[tag].compile(self)
  File "/home/ubuntu/go-noto-universal/venv_fonty/lib/python3.10/site-packages/fontTools/ttLib/tables/otBase.py", line 158, in compile
    return self.tryPackingFontTools(writer)
  File "/home/ubuntu/go-noto-universal/venv_fonty/lib/python3.10/site-packages/fontTools/ttLib/tables/otBase.py", line 210, in tryPackingFontTools
    return writer.getAllData()
  File "/home/ubuntu/go-noto-universal/venv_fonty/lib/python3.10/site-packages/fontTools/ttLib/tables/otBase.py", line 700, in getAllData
    tableData = table.getData()
  File "/home/ubuntu/go-noto-universal/venv_fonty/lib/python3.10/site-packages/fontTools/ttLib/tables/otBase.py", line 447, in getData
    raise OTLOffsetOverflowError(overflowErrorRecord)
fontTools.ttLib.tables.otBase.OTLOffsetOverflowError: ('GSUB', 'LookupIndex:', 2406, 'SubTableIndex:', None, 'ItemName:', None, 'ItemIndex:', None)

Any clue what might be wrong?

Request for other weight

I used "GoNotoSouthEastAsia" with in Thai. That work perfectly but I can't find other weight like Thin, Semi Bold, Bold, ect.
can you add other weight or how to compile it. that would be great.

thank you for build this project.

Why does GoNotoCurrent not render Korean glyphs whereas GoNotoCJKCore does?

Thank you for providing this great library!
I am currently trying to render text in various languages with the pygame library and it seems that when I am using GoNotoCurrent, I can render Japanese and Chinese glyphs just fine, but Korean glyphs are only rendered as empty boxes. When I am using GoNotoCJKCore, Korean is rendered properly as well, so I am wondering what the main difference between the two is.
I can get around the issue by rendering my texts with the Pillow library and a libraqm layout engine which builds on harfbuzz, but this is horribly slow, so I'd prefer to keep using pygame and get it to work with GoNotoCurrent. Do you have an idea why rendering Korean might not work in my setup?

Bold Options

Hi,
Can we have bold options for the other fonts also?

Font Name with "Noto" allowed by OFL???

Hello,

if I read the OFL FAQs correctly, I think to use "Noto" in a Font Name is not allowed.
May ist be recommended to use a different artificial name for your fonts?
Even if I personally like the link to Noto in the name, I think that can make problems with the license and Google.

Question: 5.4 Am I not allowed to use any part of the Reserved Font Names?
You may not use individual words from the Reserved Font Names, but you would be allowed to use parts of words, as long as you do not use any word from the Reserved Font Names entirely. We do not recommend using parts of words because of potential confusion, but it is allowed. For example, if "Foobar" was a Reserved Font Name, you would be allowed to use "Foo" or "bar", although we would not recommend it. Such an unfortunate choice would confuse the users of your fonts as well as make it harder for other designers to contribute.

"Noto is a trademark of Google LLC."

Noto Sans Nandinagari Regular could not be merged

Currently fonttools doesn't support merging when one of the inputs has different tables not present in the other. In the following example, NotoSans-Regular doesn't have vmtx.

pyftmerge --verbose NotoSansNandinagari-Regular.ttf  NotoSans-Regular.ttf
Merging 'cmap'.
Merged 'cmap'.
Merging 'GSUB'.
Merged 'GSUB'.
Merging 'GDEF'.
Merged 'GDEF'.
Merging 'head'.
Merged 'head'.
Merging 'cvt '.
Merged 'cvt '.
Merging 'gasp'.
Merged 'gasp'.
Merging 'DSIG'.
Don't know how to merge 'DSIG'.
Dropped 'DSIG'.
Merging 'loca'.
Merging 'vmtx'.
Traceback (most recent call last):
  File "/home/ubuntu/projects/go-noto-universal/venv_fonty/bin/pyftmerge", line 8, in <module>
    sys.exit(main())
  File "/home/ubuntu/projects/go-noto-universal/venv_fonty/lib/python3.8/site-packages/fontTools/misc/loggingTools.py", line 372, in wrapper
    return func(*args, **kwds)
  File "/home/ubuntu/projects/go-noto-universal/venv_fonty/lib/python3.8/site-packages/fontTools/merge.py", line 1276, in main
    font = merger.merge(fontfiles)
  File "/home/ubuntu/projects/go-noto-universal/venv_fonty/lib/python3.8/site-packages/fontTools/merge.py", line 1097, in merge
    table = clazz(tag).merge(self, tables)
  File "/home/ubuntu/projects/go-noto-universal/venv_fonty/lib/python3.8/site-packages/fontTools/merge.py", line 156, in merge
    return m.mergeObjects(self, self.mergeMap, tables)
  File "/home/ubuntu/projects/go-noto-universal/venv_fonty/lib/python3.8/site-packages/fontTools/merge.py", line 1154, in mergeObjects
    value = mergeLogic(getattr(table, key, NotImplemented) for table in tables)
  File "/home/ubuntu/projects/go-noto-universal/venv_fonty/lib/python3.8/site-packages/fontTools/merge.py", line 88, in sumDicts
    d.update(item)
TypeError: 'NotImplementedType' object is not iterable

Above is with fonttools 4.28.3

Add support for Basic Multilingual Plane (BMP, Plane 0)

Perhaps many people, like me, have been looking for a replacement for the outdated "Arial Unicode MS" font, which has near-perfect coverage of the code pages used on Windows, which is a very valuable feature for real business tasks. This despite the fact that it doesn't support surrogate pairs at all.

Unfortunately, Go Noto Kurrent could not be a painless replacement for this font, as it failed a basic test - displaying a Wikipedia article about China without missing characters:
https://zh.wikipedia.org/wiki/中华人民共和国
For example, freshwater dolphin baiji (白鱀豚) is displayed as "白�豚".

I know there is a CJK build of Go Noto, but what I would like is a universal all-in-one solution, which could be to cover Basic Multilingual Plane (BMP) as much as possible and ignore all surrogate pairs. This would prove to be an excellent solution for a great many real-world tasks where some exotic languages and characters are not used.

Theoretically, a TTF font can hold 65535 glyphs, which would cover the BMP plane (characters 0000-FFFF, excluding D800-F8FF) completely and uncompromisingly. Unfortunately, I don't have the expertise to build such a font myself.

An additional motivation for covering only BMP is that many libraries, in particular some popular PDF generators, only work correctly with it, so for them having additional planes does not result in any benefits.

Add Ge'ez (Ethiopic) script fonts

Under "Africa Middle East", the languages listed are:

Adlam, Anatolian Hieroglyphics, Arabic (Naskh-style), Avestan, Bamum, Bassa Vah, Chorasmian, Cuneiform, Egyptian, Elymaic, Hatran, Hebrew, Imperial Aramaic, Inscriptional Pahlavi, Inscriptional Parthian, Mandaic, Manichaean, Meroitic, Nabataean, Old North Arabian, Old Persian, Old South Arabian, Palmyrene, Phoenician, Psalter Pahlavi, Samaritan, Syriac, Ugaritic, Yezidi.

This doesn't include the Ge'ez script for Ethiopic languages.
The relevant Noto fonts for serif and sans-serif are linked and are each an additional 566 glyphs, which should fit within the 65,535 unicode font glyph limit given the reported size of GoNotoCurrent.ttf .

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.