173 Commits

Author SHA1 Message Date
خالد حسني (Khaled Hosny)
90e391bb31
Update Lib/fontTools/otlLib/builder.py
Co-authored-by: Cosimo Lupo <cosimo@anthrotype.com>
2024-02-15 14:56:10 +02:00
Khaled Hosny
bb557938bd [otlLib] Document buildMathTable 2024-02-14 02:54:15 +02:00
Khaled Hosny
0f953cccd8 [otlLib] Support building MATH table 2024-02-14 02:48:13 +02:00
Cosimo Lupo
3975ce6339
avoid calling getCompiledSize_ twice 2024-02-06 12:25:00 +00:00
Cosimo Lupo
96054e8152
[otlLib] choose most compact contextual lookup format (#3439)
* [otlLib] chose most compact contextual lookup format

Fixes https://github.com/fonttools/fonttools/issues/2934
2024-02-05 16:59:29 +00:00
Cosimo Lupo
6ff7d00e06
[feaLib] fix ordering of alternates in aalt lookups
Fixes https://github.com/fonttools/fonttools/issues/2937
2024-01-25 13:25:41 +00:00
Cosimo Lupo
f96b2128a1
[feaLib] keep declaration order of ligatures within ligature set
Fixes #3428
2024-01-24 12:59:00 +00:00
Khaled Hosny
c65dba41bb [otlLib] Pass ttFont to name.addName in buildStatTable
Avoids ltag warning similar to:
ae31d056051a28c39bc60fa2b827bc14efcef287
2024-01-07 14:37:53 +02:00
Cosimo Lupo
53e71f9eb7
Merge pull request #3309 from fonttools/pyup-scheduled-update-2023-10-23
Scheduled weekly dependency update for week 43
2023-11-03 10:33:00 +00:00
Cosimo Lupo
335a1e56ec re-run black v23.10 on all .py files 2023-11-03 10:25:15 +00:00
Cosimo Lupo
2c07619344 [otlLib] make ClassDefBuilder class order match varLib.mergers
see https://github.com/fonttools/fonttools/blob/c3d876/Lib/fontTools/misc/classifyTools.py#L77

i.e. we want (large classes first, then lexicographic order on the glyphs); previously otlLib was sorting by the _reverse_ of (small classes first, then glyphs lexicographic order) -- effectively comparing the reverse of the glyph sets of classes of the same size.

Fixes https://github.com/fonttools/fonttools/issues/3321

note the ttx dump of previously built fonts may change but there won't be any functional changes.
2023-11-02 16:36:48 +00:00
Simon Cozens
c5295d2f16
Better OTL builder errors (#3286)
* Raise a sensible error for keyerror

* Try harder to find error locations

* Chain exception
2023-10-05 11:09:22 +01:00
خالد حسني (Khaled Hosny)
9ad4a36309
Merge pull request #3130 from fonttools/fealib-ligcaret-variable
[feaLib] Support variable ligature caret position
2023-06-08 14:58:23 +03:00
Khaled Hosny
a43f824af9 [feaLib] Support variable ligature caret position
Allow variable scaler in ligature caret position and build
CaretValueFormat3 with DeviceTable. Does not support non-variable device
table, but can be added if someone really really wants it.
2023-05-30 20:21:21 +03:00
David Corbett
b8dcb85161 [otlLib] Fix error message in MarkBasePosBuilder 2023-05-28 20:29:49 +02:00
Khaled Hosny
fd6c81585f [otlib] Add a config option to write GPOS 7 lookups
See the inline comment and option documentation
2023-03-13 16:34:33 +02:00
Khaled Hosny
253b4f9afc [feaLib] Further merge inline single substitutions
Fixes https://github.com/fonttools/fonttools/issues/2150 (see the
discussion there).
2023-01-28 09:51:49 -07:00
Nikolaus Waxweiler
d584daa8fd Blacken code 2022-12-13 11:26:36 +00:00
Cosimo Lupo
41ff9511cc
otlLib: sort names after building STAT, set AxisValueCount=0 2022-10-20 16:44:02 +01:00
Simon Cozens
64fd837ca1
Allow multiple value record types in the same pairpos table (#2776)
* Use buildPairPosClassesSubtable's ability to promote value records (see #2772)

* Add tests for #2772
2022-09-05 14:44:50 +01:00
Behdad Esfahbod
a2ed526277 [--help] Remove end-of-line periods 2022-08-18 07:40:13 -06:00
Cosimo Lupo
20de0784c2 send DeprecationWarning if FONTTOOLS_GPOS_COMPACT_MODE env var is set
and factor out shared code to read the env var
2022-04-22 11:32:43 +01:00
Cosimo Lupo
f8611bf848 [optimize.gpos] use the same default for config and env var 2022-04-22 11:18:00 +01:00
Jany Belluz
0bd2834d1e Fix ufo2ft regression by bringing back the env var for now 2022-04-22 10:14:16 +01:00
Cosimo Lupo
ec79257960 [optimize.gpos] declare/re-export option from module 2022-04-21 15:46:12 +01:00
Jany Belluz
abc0441957 [config] Add new config module and use it for GPOS compression level 2022-04-14 15:23:02 +01:00
Simon Cozens
2d62a2ac9e
Disable GSUB5 optimization (#2540)
* Disable GSUB5/GPOS7 optimization

* Revert "Fixup test expectations"

This reverts commit 7db13c9872884772312727e3478fb36ed9883004.

* Revert "Rename GPOS8->GPOS7"

This reverts commit 6d4c5fe31c9199e6d3e46cd0808e7640d1610e75.

* Revert "Fix varlib test expectations - now badly named."

This reverts commit 4adea942cc73b6afe58e00278da6cb3795935970.

* Allow GSUB5, disable GPOS7

* Revert "Revert "Fixup test expectations""

This reverts commit 42993ae6917f8f6e4c31f4be123caca24d27d2da.

* Fix up expectations
2022-04-08 15:54:34 +01:00
Olli Meier
cf6d25cc9e As recommended from anthrotype I did: $ black Lib/fontTools/otlLib/builder.py 2022-02-11 15:55:01 +01:00
Olli Meier
68fa3bbd47 Cleaning code based on feedback from Just 2022-02-10 22:13:58 +01:00
Olli Meier
d77ec968a3
Update Lib/fontTools/otlLib/builder.py
Co-authored-by: Just van Rossum <justvanrossum@gmail.com>
2022-02-10 22:00:18 +01:00
Olli Meier
459f18ab4a
Update Lib/fontTools/otlLib/builder.py
Co-authored-by: Just van Rossum <justvanrossum@gmail.com>
2022-02-10 21:59:48 +01:00
Olli Meier
d5406feed7
Update Lib/fontTools/otlLib/builder.py
Co-authored-by: Just van Rossum <justvanrossum@gmail.com>
2022-02-10 21:59:09 +01:00
Olli Meier
9028a53d3b based on feedback 'anthrotype' I use 'windowsNames' and 'macNames' in STAT table functions and 'windows' and 'mac' in name table functions. 2022-02-10 15:57:56 +01:00
Olli Meier
6014cd8ae5 based on Just Van Rossum's feedback: replace variables. 2022-02-10 15:39:51 +01:00
Olli Meier
512d1a219c cleaning code. 2022-02-10 15:16:28 +01:00
Olli Meier
7f21d5eee3 adding variable platforms 2022-02-10 15:14:20 +01:00
Olli Meier
2a4b4a594a based on feedback, another idea 'force' 2022-02-10 14:24:41 +01:00
Olli Meier
42b272e5d9 fix failing unitest. Look and create only names about name IDn 255 (Private Use Area) 2022-02-10 14:01:04 +01:00
Olli Meier
0f17da0836 Bugfix: The script to create a STAt table created multiple unnecessary name table entries, because it did not take care a bout existing entries with the same name. 2022-02-10 13:44:42 +01:00
Simon Cozens
0f03e6529a
[docs] Fix sphinx warnings (#2453)
* Add default auto doc options

* Ensure all references are unique

* Use anonymous links to avoid duplicate references

* Remove default options, fix wrong module name

* Don’t index repeated class

* Remove repeated classes included through automodule

* Fix warnings

* We don’t use our own static directory

* Correctly format XML in docs

* Fix indentation

* Fix overline

* Bring TOC to top

* Fix definition list

* Offset definition lists and examples

* Fix erroneous markup

* Fix markup

* Already included in automodule

* Fix args markup

* Correct markup for example

* Don’t reindex repeated module

* Correct XML code block markup

* Fix markup errors, change example to doctest

* Correct list markup

* Make ttx docstring both valid RST and valid help output

* Various other boring markup fixes

* Fix example indenting

* Make docstring valid RST and valid help output

* Mock import for reportlab

* It’s ok if manual links don’t appear in toctrees

* Oops typo, I guess doctests are useful
2021-12-02 15:31:49 +00:00
David Corbett
cfa69f245f [otlLib] Remove duplicates when building coverage 2021-11-06 13:32:43 -04:00
Simon Cozens
563730f8ce
Support variable feature syntax (#2432) 2021-10-28 11:58:54 +01:00
Simon Cozens
ed833dab74 Don’t complain about format 1 lookups we couldn’t even build 2021-09-20 10:34:41 +01:00
Simon Cozens
f53a75fb1d Check for overflows in a loop 2021-09-15 11:08:50 +01:00
Simon Cozens
f9b927cdbb Fix chained contextual builder overflow 2021-08-30 10:35:56 +01:00
Jany Belluz
2ff3159a5f Mark the environment variable as experimental 2021-07-05 17:28:44 +01:00
Jany Belluz
527179619b Refactor the Cluster class to be top-level instead of nested the function 2021-07-05 17:28:44 +01:00
Jany Belluz
d1c46f9d10 Clarify comment with the plan vs the actual implementation 2021-07-05 17:28:44 +01:00
Jany Belluz
7860dd5fe8 Add tests that optimize block matrices 2021-07-05 17:28:44 +01:00
Jany Belluz
ef67839fdb Fix typing error 2021-07-05 17:28:44 +01:00