FL Won't Compile Standard OT Features; Living in Past

I used an old vfb as the basis for a new typeface; the old typeface had small caps, the new one doesn't. I assume that's why, when I add standard OT feature code and try to compile, I get an error message with a long string of "missing" .sc glyphs and, at the end, this line:
[FATAL] invalid token (text was " ")
I long ago made a fresh encoding file for the font which contains no small caps; I've updated and reloaded this many times. Additionally, there are other sets of glyphs (for instance, oldstyle figures) that existed in the old typeface and don't in the new project, and FL isn't complaining that they're missing.

I've got a client waiting for this. Many thanks in advance to anyone who can help me get it unstuck.


  • You need to remove the unused OT code, and the unused OT classes.
  • There never was any OT code in this file, Pablo. There were, however, kerning classes, and these included .sc glyphs. I regenerated the kerning classes, checked to make sure the small caps were gone, tried compiling the code again, and FL crashed. This happened three times running.
  • Sometimes that Invalid token warning can be eliminated by just quitting and relaunching FL.

    If not, sometimes old vfb files have some silly things attached to them, so...

    Copy all of the glyphs from the font window and using "append glyphs" add them to a completely new font file. Add the appropriate info by importing it via Font Info and the afm import in the metrics window as well as classes and features.
  • I've relaunched FL a couple dozen times trying to work this out. I guess these files have cooties, so I'll try and make fresh ones as per your instructions. Pray for me.

    Thanks, James and Pablo.
  • Is there more to the error message you received than what you wrote above?
  • try resetting your groups
  • That's all FL wrote, George.

    James, I followed your instructions and was able to create new OT features in the clean new vfb with no difficulty. But all the composites in the new vfb I made are decomposed, which is a problem. Am I doing this wrong?

    Jackson: Sorry to be dense, but I'm not sure what you mean by 'groups'. Kerning/metrics/OT classes? Shape groups? I'm not using shape groups, that I know of.
  • Max, what Pablo and James M. told you was the best course of action, especially if the original file was an old FL 4.6 file.
  • The vfbs were created in 5.0.4, George. And I'm certainly not arguing with either James or Pablo. But when I tried their suggestions, I had the problems I outlined above. I think I may need to reinstall FL and/or try this on another computer, since I can no longer copy composite glyphs from one vfb to another without having them decompose.
  • Max, I just tried copying a composite from one file to a new one and it gave me a choice as to whether to decompose or include the referenced glyphs. Do you get that?
  • Mark SimonsonMark Simonson Posts: 1,165
    Try copying the non-composite glyphs over first, then copy the composites over.
  • Mark SimonsonMark Simonson Posts: 1,165
    edited March 2013
    Also, an easy way to do this is to use Edit > Find… and search for Components … equal to … 0, and click on the little "select" button next to the red checkmark button. This will select all the glyphs that don't have components, which you can then copy and append to your new font. You can select all the composite glyphs similarly, but use Components … more than … 0.
  • Thanks, Mark, and I'm sorry to be a pain, but I just did everything you said (after first having uninstalled and reinstalled FL) and came up w/ the same result: all the composites decompose. They also decompose if I try copying and pasting them, even one at a time. The only time they don't decompose is if I try to copy them from one of my old vfbs to another in the same family: from the Bold to the Regular, for instance. Then they're fine, for some reason.
  • Sorry, it's been a while since i've touched fontlab. Get rid of your kerning and OT classes. Fontlab turns those into OT groups when it compiles, which fails if they contain glyphs that don't actually exit.
  • Mark SimonsonMark Simonson Posts: 1,165
    Max, I'm not sure what you're doing differently, or maybe I missed something in my explanation, but I tested it out myself and it works (FL 5.1.3 Mac). Are you appending the glyphs to the new font or pasting them? When I do it I always append.
  • I'm guessing stuff like this is one reason you don't work in FL anymore, Jackson.

    And thank you: your suggestion worked. I'd previously updated the kerning classes and checked them for ringers, but there was still one monster OT class left, and I guess it had funny stuff in it. Dumping everything worked.
  • Hello, Mark. Sorry not to have responded; I somehow missed your last post. I tried both appending and pasting, on two different Macs, relaunching FL several times, and both had the same effect. But I do appreciate your trying to replicate my mishegoss at home.

    FWIW, everyone, I found that I could fix this problem by simply running Clean Up Classes in the Metrics panel. Less drastic than dumping your classes, and equally effective. Though the real takeaway seems to be: don't build new fonts on old vfbs. (And maybe: don't work in FontLab.)
  • Glad it worked. Copying features, kerning, groups, or starting over in existing fonts always seems to lead to these problems, Fontlab or not. Best practice is to start from scratch every time and copy things over when you need them.
  • Mark SimonsonMark Simonson Posts: 1,165
    Just in case anyone sees this later and wonders, here is my method step by step:

    1. Open old font.
    2. Create new (empty) font.
    3. In old font, find and select all glyphs with 0 components.
    4. Copy.
    5. Switch to new font, right-click in the font window and choose "Append Glyphs" from the popup menu.
    6. Switch back to old font, find and select all glyphs with more than 0 components.
    7. Repeat steps 4 and 5.

    You should now have a new font with the composites intact. (I tested this on a font containing 1062 glyphs, 633 of them composites, and it all worked.)

    Anyway, glad you were able to solve the problem without resorting to this.
Sign In or Register to comment.