I have used FontForge in the past (years ago), but I’m definitely no expert, and I’m basically relearning everything.
I’m using FontForge on Linux Mint 17.2.
$ fontforge -version
Copyright (c) 2000-2012 by George Williams.
Executable based on sources from 14:57 GMT 31-Jul-2012-ML.
Library based on sources from 14:57 GMT 31-Jul-2012.
I want to add some glyphs (from the Pitman/Ellis 1847 phonotypic alphabet) to an existing font, and then use the resulting augmented font in LaTeX/XeTeX. As the Pitman/Ellis 1847 alphabet has not yet been added to Unicode (there's a moribund proposal to add these characters at http://www.unicode.org/L2/L2010/10229r-epa-proposal.pdf) I will add the new glyphs in a Unicode Private Use Area.
For better or worse, here’s what I decided to try:
1. Start with DoulosSIL-R.ttf, which is obviously a TrueType font (quadratic splines).
2. Convert it to an .otf, so that I could edit glyphs with cubic splines. I found the following instructions, which I followed
Converting from TrueType (quadratic splines, ttf files) to PostScript (cubic splines, otf and pfb files):
(the truetype font)
Element->Font Info->Layers <https://fontforge.github.io/fontinfo.html#Layers>
Check <*> All layers cubic
Hints->Auto Hint <https://fontforge.github.io/hintsmenu.html#AutoHint>
File->Generate Fonts <https://fontforge.github.io/generate.html>
In addition, I changed the em size from 2048 to 1000.
I generated the font as OpenType(CFF).
When automatic validation is done, the following message is printed:
The font contains errors.
Missing Points at Extreme
Glyph contains overlapped hints (in the same hint mask)
Would you like to review the errors or save the font anyway?
A review of the errors shows that there are, indeed, scores of errors reported?
Question: What, if anything, should I do about these errors?
Question: Anything else that I’m doing wrong?
Kenneth R. Beesley, D.Phil.
PO Box 540475
North Salt Lake UT 84054
fontforge-users mailing list
Interesting question. I proceeded more carefully:
Element, Validation, Validate: many, many "missing points at extrema"; therefore
Edit, Select, Glyphs Worth Outputting; Element, Add Extrema
Element, Validation, Validate: many, many "Non-integral coordinates"
Element, Round, To Int
Element, Validation, Validate: many, but not so many "non-integral coordinates" and "missing points at extrema," sometimes both in the same glyph.
In other words: by the strict standards used for FontForge validation, the font as distributed is so badly formed that FontForge is unable to fix it automatically. Maybe the only thing you're doing wrong is holding the font to unnecessarily high standards.
With some effort I was able to fix all the problems. I ran cycles of validate, round, validate, add extrema, repeat, until only four self-intersection errors remained. Double-clicking each error message to bring up glyph view, I identified the errors by zooming in on the selected points, and fixed them by either untwisting at a corner point or deleting small extraneous contours.
After converting to cubic splines and validating again, six glyphs with ogoneks turned up as self-intersecting. These can be fixed by right-clicking on the error message and selecting "mark for overlap fix before save."
I don't really know how to deal with overlapped hints. I get that error when I autohint. FontForge has an option to add hints when it generates fonts, possibly overlapping those created by autohinting. "Design with FontForge" recommends not hinting. I don't know.
I run into the same issues all the time when converting fonts to .otf
for better rendering with FreeType's CFF engine and also when looking at
various fonts shipped with the system or elsewhere. Seriously, check a
few system fonts and wonder about all the faults FF finds.
This may be partly because the font sources were using floating point
coordinates and the production scripts rounded to integers in such a way
that you get off-by-one-missing-extremas on terminals and serifs and
stuff. Maybe the designer did it on purpose to save points. FontForge
also plays a role here, as the conversion between upEMs and conic/cubic
curves may introduce rounding problems. When doing ANYTHING to glyphs,
always do round-to-int immediately after, that might save you a bunch of
missing extremas. FF's automatic fixes can be hit and miss.
Self-intersections can stay if they don't show up as problems in apps,
otherwise mark them all for "unlink etc when generating". Remember to
round-to-int in the production script after that, because it *will*
result in floating point coordinates.
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
fontforge-users mailing list
|Free forum by Nabble||Edit this page|