Improve comment.
[ttfautohint.git] / TODO
1
2 important improvements
3 ----------------------
4
5 add features to the GUI
6   -> direct control over `actions'
7   -> preview similar to ftgrid
8   -> autocompletion of file names with tab key
9
10 handle OT features
11   -> use HarfBuzz as soon it provides the necessary APIs
12
13 control `gasp' table; Adam Twardoch suggest the following:
14
15   1. Calculate "gaspstem", i.e. the most common thickness of horizontal
16      stems (y direction distances) for lowercase Latin letters.
17   2. If gaspstem <= 0.03 * upm, apply gasp symmetric smoothing across the
18      entire range (rangeMaxPPEM 0xFFFF, value 15)
19   3. Else, calculate gaspthreshold as follows:
20        ceil(1.33 * upm / gaspstem) - 1
21   4. Apply no symmetric smoothing up to the gaspthreshold ppem (rangeMaxPPEM
22      gaspthreshold, value 7), and apply symmetric smoothing above.
23
24   In addition, ttfautohint should provide a commandline parameter that
25   allows the user to override the automatic logic.  If that parameter = 0,
26   then gasp value 15 should be applied across the entire range.  If the
27   parameter > 0, then up to that parameter value the gasp value 7 should be
28   applied, and gasp value 15 should be applied above.
29
30 create a separate blue zone class for `i' and `j':
31   . if the values differ more than a given threshold, handle them
32     separately
33   . otherwise, unify them with `f' and friends.
34
35 control the characters used for blue zones
36   -> non-latin scripts
37
38 user-defined blue zones?
39   -> old-style digits
40
41 control the width of blue zones
42
43 add control over character ranges which define a script; in particular, add
44   support for the PUA
45
46 handle normal and bold fonts differently; cf. Infinality patches;
47   this should help avoid filling of bowls (like in `e') for bold shapes.
48
49 help font families harmonize well so that e.g. x height and stem width
50   change synchronously
51
52 control the minimum stem width
53
54 try to `embolden' fonts at small sizes to avoid drop-outs; cf. Infinality
55   patches
56
57 make switching between smooth and strong hinting dependent on user-defined
58   ranges
59
60 improve `pre-hinting' by making the used PPEM value configurable
61
62 allow hinting of single glyphs, using a config file which holds the global
63   settings
64
65 better handling of `incomplete' fonts (this is, fonts which lack the minimum
66   set of glyphs necessary to determine the blue zones)
67
68
69 minor improvements
70 ------------------
71
72 reject fonts which are `hopeless' (for example, `Lipstick')
73
74 correctly set `lowestRecPPEM' field in `head'
75
76 control dropout mode
77
78 apply hinting in x direction also?
79   -> warper: shifting with and without scaling
80   -> `standard' autofit hinting
81
82 add a config and/or command file for batch handling
83
84 warn against overwrite of output file in TTY mode?
85
86 reduce output size of option -p:
87   1. compare outline rendered at EM value with unhinted outline
88   2. pre-hint only if 1. differs more than given threshold (default 0.5%?)
89
90 make it possible to hint fonts which aren't alphabetic at all, for example,
91   icons; to do so, provide means to skip the global feature analysis
92
93 better control -i output
94
95 allow processing of multiple files by using globs as in the Midnight
96   Commander?
97
98 allow composite fonts already processed by ttfautohint to be processed
99   again (due to option `hint-with-components' this isn't urgent)
100
101 make ttfautohint remember options:
102   1. collect md5 checksums in a `~/.ttfautohint_history' file so that fonts
103      can be re-processed easily, using the same parameters
104   2. if fonts already processed by ttfautohint can be re-processed (which
105      isn't possible yet), parse the `version' string for parameters
106
107 implement (sort of) the opposite of -x, this is, decrease the x height
108
109
110 later enhancements
111 ------------------
112
113 add CJK autohinting module
114 add Hebrew autohinting module
115
116 instead of emitting bytecode, write the hints as a VTT or FontLab script
117
118 Windows/Mac installer
119
120
121 various
122 -------
123
124 testing with Windows and Apple font checkers
125
126 man page for ttfautohint library
127
128 install library
129
130 add help2man script so that parallel builds always work
131
132 EOF