There are also two menu entries which are not part of the default build but
which may be configured by modifying configure-fontforge.h
before
compiling FontForge.
The sub-menu consists of a list of feature names (and a few more generic names like "All" which will provide defaults for everything it can figure out, and "Ligatures" which will provide defaults for all ligatures). FontForge will look for defaults for all selected glyphs. There is also one special entry:
Using this command you can tell FontForge to associate a given suffix with a feature tag. (in the above example you could associate ".swash" with 'swsh' -- except you don't need to, because FontForge already knows about that one). Select the letter "A", then enter the command, then "A" will be linked to "A.swash" as a 'swsh'.
FontForge deals in pixel sizes, not point sizes. The conversion between pixels and points differs on different systems and indeed on different screens. A point is (approximately) 1/72 of an inch, a pixel is however big a pixel happens to be on your screen. Usually pixels range from about 1/72 of an inch to about 1/144 of an inch. Different systems support different screen resolutions as "standard", and FontForge tries to know about these standards.
Screen Resolution |
72dpi Mac |
75dpi X |
96dpi Win |
100dpi X |
120dpi Win |
---|---|---|---|---|---|
10pt | 10 | 10 | 13 | 14 | 17 |
12pt | 12 | 12~13 | 16 | 17 | 20 |
18pt | 18 | 19 | 24 | 25 | 30 |
24pt | 24 | 25 | 32 | 33 | 40 |
Sadly your screen will probably not match one of the standard screens precisely. On X the standard resolutions are 75 and 100dpi, on MS Windows 96 and 120dpi, and on the Mac 72dpi. This dialog provides the conversion between pixel size and point sizes at these resolutions.
Normally the new glyphs are created by rasterizing the outline font. If your system has the freetype2 library installed (and you checked the "Use FreeType" box) then FontForge will use the FreeType rasterizer to generate bitmaps, otherwise it will use FontForge's built-in rasterizer (which isn't as good, but involves a little less overhead).
Finally, if you have no outline font then the new glyphs will be created by scaling the (bitmap) font displayed in the font view.
In CID keyed fonts there will not be a set of bitmaps for each sub font,
instead the entire complex of sub-fonts share bitmaps.
FontForge
also supports anti-aliased bitmap fonts, and you can use this dialog to generate
them. If you want to generate a 12 point anti-aliased font with 8 bits per
pixel you would type 12@8 into the dialog above. FontForge supports 1, 2,
4 and 8 bit per pixel fonts (a 1 bit per pixel font is a standard bitmap,
the others are greymaps).
(New greymaps can not be created by scaling old greymaps, if you wish to
generate a greymap font, you must have an outline font).
configure-fontforge.h
and then rebuild FontForge. This command
allows the user to specify a non-linear transformation as a pair of expressions
(the first specifies the transformation for the x coordinate, the second
for the y coordinate). These expressions may be fairly general functions
of x and y. See the scripting page
for a description of the syntax.
configure-fontforge.h
and then rebuild FontForge. Not available
in quadratic (truetype) fonts. This command takes the contents of the clipboard
and treats it as a tile which is applied to any selected contours.
Make sure paths have the correct orientation. Consider the letter "O" with two contours. If both contours run in the same direction then the inner path will be removed (because the outer path overlaps it everywhere), but if the contours run in oposite orientations then the inner path will be retained. Things get very strange if you have intersecting paths with different orientations.
This command is probably the buggiest in FontForge. So before FontForge invokes
the command it will save the state to the error recovery file.
Warning: Splines which are tangent (or nearly so) cause problems. Points
which are close together can cause problems.
1If you wish to run remove overlap on a truetype (quadratic) font, you must first use Element->Font Info->General to convert it into a cubic font, do the remove overlap, and then convert back to quadratic.
![]() |
![]() |
This will remove everything not in the intersection of two regions.
![]() |
![]() |
This will remove the selected contours from the unselected ones. Only available in the outline glyph view.
Finally, you may specify whether this set of values should become the default value for future Simplify commands
If you have a glyph which contains both contours and references, FontForge does not specify whether references or contours are drawn first (or whether the two are intermixed). If this matters to you, unlink your references.
If not paths are selected, or if all selected paths are open this will be greyed out. I a selected path intersects itself results are indeterminate.
If not paths are selected, or if all selected paths are open this will be greyed out. I a selected path intersects itself results are indeterminate.
The first menu item will only build accented letters, the second will build general composite glyphs (fractions, ligatures, digits inside parens, roman numerals, etc.) as well.
If the current glyph is an accented glyph (and all the base glyphs and accents
have already been created) then this command will delete anything that is
currently in the foreground and put a reference to the base glyph and another
reference to the accent glyph into the foreground. So if the current glyph
were "À" then a reference to "A" would be added to it, and a reference
to "`" would be centered above the "A".
If Copy From is set to All Fonts then any
bitmaps will have a similar process done (even in the outline glyph view).
A more complete description is given in the section on
accented glyphs.
FontForge does the following when merging CID-keyed fonts:
If these conditions be met then any CIDs from the merger which are not present in the mergee will be merged into the same subfont of the mergee as they came from in the merger.
This strikes me as somewhat problematic, but I can't think of a better solution.