Hot fix for #510: Primes need to be angled.

Transplan glyphs for U+203[2-4] (prime, double prime and triple prime)
from NotoSerif* v3 to NotoSerif v2.

v3 has upem of 1000, while v2 has upem of 2048. So, before transplating
glyphs, the glyphs for three characters are scaled up by a factor of
2048/1000. In addition, htmx table was also updated (lsb and width).

The following script was used to transplant glyphs and bump up the
version number to 1.07 from 1.06.

Note that only unhinted NotoSerif-*.ttf are updated and hinted
NotoSerif*.ttf are left alone.

------
from os import path

from nototools import fix_khmer_and_lao_coverage as merger
from nototools import font_data
from nototools import subset

from fontTools import ttLib

def make_version_str(revision):
  revision_int = int(revision)
  revision_frac = int(round((revision - revision_int) * 100))
  return 'Version ' + str(int(revision)) + '.' +  str(revision_frac).zfill(2)

def bump_version(font_file):
  font = ttLib.TTFont(font_file)
  _VERSION_ID = 5
  revision = font['head'].fontRevision
  version_str = make_version_str(revision)
  new_revision = float(int(round(revision*100)) + 1) / 100
  new_version_str = make_version_str(new_revision)
  print " " + version_str + " => " + new_version_str
  font['head'].fontRevision = new_revision
  version_id = font_data.get_name_records(font)[_VERSION_ID]
  new_version_id = new_version_str + version_id[len(version_str):]
  font_data.set_name_record(font, _VERSION_ID, new_version_id,
                            addIfMissing='win')
  font.save(font_file)

V3_DIR = "v3_generated/scaled"
V2_SRC_DIR = "v2_nohint"
DEST_DIR = "v2_nohint_fixed"

chars_to_transplant = {0x2032, 0x2033, 0x2034}
for style in ["Regular", "Italic", "Bold", "BoldItalic"]:
  font_name = "NotoSerif-%s.ttf" % style
  v2font_path = path.join(V2_SRC_DIR, font_name)
  v3font_path = path.join(V3_DIR, font_name)
  v2dest_path = path.join(DEST_DIR, font_name)
  subset.subset_font(v2font_path, v2dest_path, exclude=chars_to_transplant)
  merger.merge_chars_from_bank(v2dest_path,
                               v3font_path,
                               v2dest_path,
                               chars_to_transplant)
  bump_version(v2dest_path)
4 files changed
tree: 0176626937b5871d456666b90db0b617b48b4d98
  1. alpha/
  2. hinted/
  3. images/
  4. unhinted/
  5. FAQ.md
  6. LICENSE
  7. NEWS
  8. README.md
README.md

Noto

Noto fonts

Noto's goal is to provide a beautiful reading experience for everyone and for all languages. With visual harmony when multiple languages share a page. With multiple styles and weights. Freely available to all.

Currently, Noto covers all major languages of the world and many others, including European, African, Middle Eastern, Indic, South and Southeast Asian, Central Asian, American, and East Asian languages. Several minority and historical languages are also supported.

Support for Simplified Chinese, Traditional Chinese, Japanese, and Korean was first added in July 2014.

You can preview and download the Noto fonts at http://www.google.com/get/noto

Noto fonts are open source. All fonts are published under the SIL Open Font License, Version 1.1. (Prior to September 29, 2015, Noto fonts other than CJK were published under the Apache License, Version 2.0.)

Use unhinted fonts for Android and Mac (Android and Mac ignore hinting information embedded in fonts). Use hinted fonts for other platforms.

Development

All Noto fonts are included in this repository, except:

Tools used for testing fonts are in nototools.

Some source files are available in noto-source.

Development and user discussions happen on the noto-font Google Group.

News

  • 2015-09-29: All Noto fonts now licensed under SIL Open Font License v1.1.

  • 2015-06-08: The Noto project moved from Google Code to Github.

  • 2015-04-20: Noto Sans CJK Version 1.002 released.

  • 2015-03-30: Noto Sans Oriya and and a new design for Armenian fonts released.

  • 2014-10-23: Experimental version of Noto Nastaliq Urdu released.

Special Note on Droid Fonts

The Droid fonts are superseded by Noto. Noto began as Droid, and since renaming all updates are made to the Noto fonts. Today Noto gives better support to all languages covered by Droid fonts, with more characters and fewer bugs, and covers many more languages. Both Android and ChromeOS have switched to Noto, and we strongly recommend everyone to replace Droid with Noto.

Similarly, the Droid Sans Fallback font is superseded by Noto Sans CJK, available from noto-cjk.

Have fun!

Google Internationalization Team