Synchronize with FreeType.
[ttfautohint.git] / TODO
blob131e5197d9da108cb459bd2c916a67d2672cdce1
2 important improvements
3 ----------------------
5 add features to the GUI
6   -> direct control over `actions'
7   -> preview similar to ftgrid
8   -> autocompletion of file names with tab key
10 control `gasp' table; Adam Twardoch suggest the following:
12   1. Calculate "gaspstem", i.e. the most common thickness of horizontal
13      stems (y direction distances) for lowercase Latin letters.
14   2. If gaspstem <= 0.03 * upm, apply gasp symmetric smoothing across the
15      entire range (rangeMaxPPEM 0xFFFF, value 15)
16   3. Else, calculate gaspthreshold as follows:
17        ceil(1.33 * upm / gaspstem) - 1
18   4. Apply no symmetric smoothing up to the gaspthreshold ppem (rangeMaxPPEM
19      gaspthreshold, value 7), and apply symmetric smoothing above.
21   In addition, ttfautohint should provide a commandline parameter that
22   allows the user to override the automatic logic.  If that parameter = 0,
23   then gasp value 15 should be applied across the entire range.  If the
24   parameter > 0, then up to that parameter value the gasp value 7 should be
25   applied, and gasp value 15 should be applied above.
27 create a separate blue zone class for `i' and `j':
28   . if the values differ more than a given threshold, handle them
29     separately
30   . otherwise, unify them with `f' and friends.
32 user-defined blue zones?
33   -> old-style digits
35 control the width of blue zones
37 add control over character ranges that define a script; in particular, add
38   support for the PUA
40 control the minimum stem width
42 try to `embolden' fonts at small sizes to avoid drop-outs; cf. Infinality
43   patches
45 make switching between smooth and strong hinting dependent on user-defined
46   ranges
48 improve `adjust-subglyphs' by making the used PPEM value configurable
50 allow hinting of single glyphs, using a config file that holds the global
51   settings
53 better handling of `incomplete' fonts (this is, fonts that lack the minimum
54   set of glyphs necessary to determine the blue zones)
56 add second-pass analysis to improve positioning of composite glyphs
58 introduce a new control instructions command to apply a given delta to a
59 whole contour
62 minor improvements
63 ------------------
65 add a glossary to the documentation
67 reject fonts that are `hopeless' (for example, `Lipstick')
69 correctly set `lowestRecPPEM' field in `head'
71 control dropout mode
73 apply hinting in x direction also?
74   -> warper: shifting with and without scaling
75   -> `standard' autofit hinting
77 add a config and/or command file for batch handling
79 warn against overwrite of output file in command-line mode?
81 reduce output size of option -p:
82   1. compare outline rendered at EM value with unhinted outline
83   2. adjust subglyphs only if result of item 1 differs more than given
84      threshold (default 0.5%?)
86 better control of -i output
88 allow processing of multiple files by using globs as in the Midnight
89   Commander?
91 allow composite fonts already processed by ttfautohint to be processed
92   again (due to option `hint-composites' this isn't urgent)
94 make ttfautohint remember options:
95   1. collect md5 checksums in a `~/.ttfautohint_history' file so that fonts
96      can be re-processed easily, using the same parameters
97   2. if fonts already processed by ttfautohint can be re-processed (which
98      isn't possible yet), parse the `version' string for parameters
100 implement (sort of) the opposite of -x, this is, decrease the x height
103 later enhancements
104 ------------------
106 add CJK autohinting module
108 instead of emitting bytecode, write the hints as a VTT or FontLab script
110 Windows/Mac installer
113 various
114 -------
116 testing with Windows and Apple font checkers
118 man page for ttfautohint library
120 add help2man script so that parallel builds always work