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