5593 Commits

Author SHA1 Message Date
Takaaki Fuji
e4c1deb64f Add documentation
Note that the example covers a ltr/rtl/ttb typesetting with uharfbuzz.
2022-01-08 02:06:14 +09:00
Takaaki Fuji
f7c29e89be Change arguments for positioning and dimension
After experimenting with uharfbuzz for a while, I found out it was hard
to handle top-to-bottom texts, so I gave up an idea to put an ascender
or a descender value in the arguments. Instead, I simply expose 'offset',
'width' and 'height', which is way more straightforward than the
previous design.

In addition, 'contain' option is added to easily compensate and render
glyphs such as combining accents or excessively tall letters.
2022-01-07 22:29:01 +09:00
Takaaki Fuji
288d907497 Stop trying to cache modules pointlessly 2022-01-06 22:10:05 +09:00
Takaaki Fuji
10a3ca8ea5 Use freetype-py instead
I didn't expect that the PyPI package contains the pre-built binary
for each platform. Skip the test when freetype-py is not avaiable.
2022-01-06 19:07:26 +09:00
Takaaki Fuji
55dca28734 Remove execute permission 2022-01-06 17:49:43 +09:00
Takaaki Fuji
e2fad4db11 Add FreeType-based Pen for rasterisation 2022-01-06 09:00:53 +09:00
Thomas Rettig
892322aaff
Fix grammar (#2487) 2022-01-04 11:44:04 +01:00
Cosimo Lupo
bd58e66dbf bump unicodedata2 dependency to 14.0.0
now supports pypy3 and Unicode 14.0
2021-12-20 16:44:17 +00:00
Cosimo Lupo
de869081df Bump version: 4.28.5 → 4.28.6.dev0 2021-12-19 10:49:06 +00:00
Cosimo Lupo
80bdd7666b Release 4.28.5 2021-12-19 10:49:06 +00:00
Cosimo Lupo
9f38d4de12 svgPathPen: forgot to replace remaining str() with self._ntos()
H and V commands were not passed through the custom number-formatting callable.
2021-12-19 10:35:46 +00:00
Behdad Esfahbod
7c542684be [merge] Remove most 'from .. import *' 2021-12-16 13:56:11 -07:00
Behdad Esfahbod
deaf30d17c [merge] Use merger-private namespace in TTFont.__dict__ 2021-12-16 13:32:11 -07:00
Behdad Esfahbod
e6719f4dad [merge] Clean up glyphOrder and cmap computation 2021-12-16 13:29:43 -07:00
Behdad Esfahbod
915c077bf3 [merge.util] Set CFF charset when renaming 2021-12-16 13:20:07 -07:00
Behdad Esfahbod
30c5a8b724 [merge.layout] Optimize log message interpolation 2021-12-16 12:15:54 -07:00
Behdad Esfahbod
0f101663aa [merge] Report font name instead of number
Yay!
2021-12-16 10:48:10 -07:00
Behdad Esfahbod
23f00306b1 [merge] Save fontfile and fontname on opened fonts for debug purposes 2021-12-16 10:43:12 -07:00
Behdad Esfahbod
c0e61b729a [merge] Move cmap computation closer to glyph-order computation 2021-12-16 10:31:56 -07:00
Behdad Esfahbod
8dc3d5b322 [merge] Move layout pre/post-Merge code to merge.layout 2021-12-16 10:28:03 -07:00
Behdad Esfahbod
01fcec35c6 [merge] Move renameCFFCharStrings to merge.util 2021-12-16 10:25:32 -07:00
Behdad Esfahbod
8ee5f26731 [merge] Move more code to merge.cmap 2021-12-16 10:23:01 -07:00
Behdad Esfahbod
3bb1c5b58f [merge] Move cmap code to merge.cmap 2021-12-16 10:13:33 -07:00
Behdad Esfahbod
4955d83c4d [merge] Whitespace 2021-12-16 09:03:10 -07:00
Behdad Esfahbod
fcdde525ca [merge] Move options code to merge.options 2021-12-16 08:59:04 -07:00
Behdad Esfahbod
a551826380 [merge] Move helper dicts to merge.util 2021-12-16 08:57:22 -07:00
Behdad Esfahbod
99f9e07280 [merge] Add merge.unicode 2021-12-16 08:53:13 -07:00
Behdad Esfahbod
40f9e2cdc4 [merge] Move layout code into merge.layout 2021-12-16 08:47:44 -07:00
Behdad Esfahbod
eaaeb7ab28 [merge] Move most tables into merge.base module 2021-12-16 08:41:14 -07:00
Behdad Esfahbod
bb1e1bdf98 [merge] Split some code into merge.util 2021-12-16 08:37:36 -07:00
Behdad Esfahbod
3eff0a47e4 [merge] Move code into module directory 2021-12-16 08:26:56 -07:00
Behdad Esfahbod
d2983cce51 [merge] Add --drop-tables 2021-12-16 08:18:46 -07:00
Behdad Esfahbod
584c748951 [merge] Downgrade duplicates-resolution missing-GSUB from assert to warn 2021-12-16 08:18:46 -07:00
Behdad Esfahbod
31dcd03bff [merge] Ignore shape of Default_Ignorable glyphs
Data should be moved to unicodedata module eventually.
2021-12-16 08:13:28 -07:00
Behdad Esfahbod
2e4b8cea59 [merge] Show tolerance re glyph comparison for empty glyphs' width 2021-12-16 08:09:28 -07:00
Behdad Esfahbod
b63f6413ca [merge] Remove _glyphsAreSame() check
This was removing semantically-significant difference amongst glyphs
such as two identical glyphs one in Noto Sans Tamil one in Noto Sans
Grantha as in the following issue:

Part of fixing https://github.com/fonttools/fonttools/issues/2475
2021-12-16 08:03:38 -07:00
Behdad Esfahbod
672b4032ad [merger] Fix duplicate-glyph-resolution GSUB-lookup generation code
Part of fixing https://github.com/fonttools/fonttools/issues/2475

Old code was mistakenly only adding the synthetic-generated feature
to the first language-system. In the case of merging Noto Grantha
and Noto Tamil fonts, Noto Tamil had two script systems: 'taml' and
'tml2', and we were adding the synthetic 'locl' feature only to the
DefaultLangSys of the 'taml' script, not the 'tml2' script. That was
the main bug.

A second issue was that the lookup was being added twice to the same
(synthetic) feature. Check before adding lookup, to avoid that.
2021-12-16 08:03:38 -07:00
Cosimo Lupo
22266631d9 plistlib: fix PlistEncodable typing annotations to appease mypy
https://github.com/fonttools/fonttools/runs/4545664923?check_suite_focus=true#step:5:12
2021-12-16 10:24:49 +00:00
Behdad Esfahbod
1b8f16b11f [merge] Remove obsolete comment 2021-12-15 20:54:45 -07:00
Behdad Esfahbod
4de9ffcdd5 [merge] Move CFF.desubroutinize to proper place 2021-12-15 20:53:29 -07:00
Cosimo Lupo
1355769766 Bump version: 4.28.4 → 4.28.5.dev0 2021-12-15 17:23:21 +00:00
Cosimo Lupo
071ea963d4 Release 4.28.4 2021-12-15 17:23:20 +00:00
Cosimo Lupo
5af9c74cad
Merge pull request #2471 from fonttools/svg-pen-round
svgPathPen: add option to customize number formatting (e.g. rounding)
2021-12-15 16:39:48 +00:00
Cosimo Lupo
fe2ba42811
Merge pull request #2467 from aschmitz/subset-hotspots
subset: speed up subsetting of large fonts
2021-12-15 16:34:02 +00:00
Behdad Esfahbod
b8615f9de6 [merge] Merge GDEF marksets in Lookups properly 2021-12-15 09:21:16 -07:00
Simon Cozens
ed07df39da
Die noisily (#2472) 2021-12-14 19:26:50 +00:00
Cosimo Lupo
fce1fa2da8 svgPathPen: add option to customize number formatting (e.g. rounding)
Using a RoundingPen as a filter doesn't work for TrueType quadratic splines (qCurveTo), because the rounding would occur too early, before these get split into atomic quadratic Bezier segments (by the superclass BasePen.qCurveTo method), thus leaving unwanted floating-point coordinates in the SVG output.
So here we add a 'ntos' parameter (by default simpli calls str()) that takes a Callable[[float], str] and can be used to customize the formatting of the numbers in SVG path coordinates.
2021-12-14 13:19:50 +00:00
Cosimo Lupo
d190a7c206 otTables: no need get LayerRecordCount by name, we already have it in scope
Fixes #2468
2021-12-13 11:17:08 +00:00
Khaled Hosny
6481cff159
Merge pull request #2464 from simoncozens/demystify-deduplication
Demystify deduplication
2021-12-12 22:13:31 +02:00
aschmitz
d9f9466d63 subset: speed up subsetting of large fonts
Two small changes that significantly speed up subsetting of large fonts
such as Noto Sans CJK:

1. When emptying a charstring, simply empty its program rather than
attempting to decompile it first. (Only relevant when retaining GIDs.)

2. When reindexing charstrings, swap an accidentally-quadratic
implementation for one that is linear in the number of retained glyphs.
2021-12-09 23:44:57 -06:00