You have already seen how to specify a source file location and a destination file location.
Microsoft has defined a gasp table that enables fonts to specify at what point sizes anti-aliasing should be used and when grid-fitting should be used (i.e. when the instructions should be executed). This is specified as ranges of sizes.
#gasp A 8 I 20 AI 2048 A
Here, the Microsoft recommendation is implemented. Up to ppem=8, the glyphs
will be anti-aliased (
A) but the instructions are not executed;
from 9 up to 20 no aliasing will be used, but the instructions will be
from 21 up to 2048 both are on (
above 2048 only aliasing will be used.
N may be used for no anti-aliasing and no instruction execution.
Note that the gasp table appears
to be patented, so that free renderes may not use the information in it
(for example, the FreeType rendering
However, not all is lost: instruction execution may be switched on in the
prep() function depending on point size programmatically.
It may be sensible to specify that instructions and anti-aliasing should
always be done:
#gasp option is found, the original table, if any, will
remain in the font.
The memory requirements for the instructions may be specified using options. Once again, if you specify nothing, the original settings will be used.
#twilight option specifies how many twilight points are used in the
instructions. This may be
#stack option specifies the stack size.
This depends on the length of functions, number of parameters, number of
function calls etcetera.
You do not know this on beforehand; it is safest to set it to a sufficiently
large number (say, 300) and change it later, using any "stack overflow" error
messages from the virtual machine (e.g., TrueTypeViewer or the Microsoft Font
Validator) as an indication you've gone too low.