Using Unregistered Opentype Features

agisaak's picture

I've run into a bit of a feature-ordering dilemma, where two features can't be consistently ordered to produce the desired results. I'd thought of a rather ad-hoc hack to solve this, but was wondering whether this might potentially cause problems.

What I'd thought of doing was something along the lines of the following, where a 'dummy' feature is declared simply as a placeholder for a lookup:

feature QRXC { # dummy feature

   lookup X {
      # do X
   } X;


feature ss01 {
   # do Y
} ss01;

feature ss02 {

   lookup X;
  # do Z

} ss02;

This would force the relevant lookups to be ordered such that feature 'ss02' would be able to do some stuff both before and after feature 'ss01' is applied. Feature 'QRXC' presumably would never be activated on its own since 'QRXC' isn't a registered feature and presumably therefore no application will be aware of it.

Has anyone ever made use of this approach? Are there potential problems which might arise from using 'dummy' features (apart from the obvious problem that someone might someday register such a feature)?


John Hudson's picture

Why not use a tool like VOLT that allows you to order lookups independently of features? This is how the GSUB and GPOS table architecture is actually arranged, so tools that force you to order features discreetly are putting a limitation on OpenType fonts that are not part of the format.

agisaak's picture

I'm on a Mac, so VOLT isn't really an option (I tried to get it to run once under Darwine (a Mac version of wine), but without success). I'm aware that I can do this if I compile my features directly under the most recent AFDKO, but I'm more comfortable working within FontLab. As I said, the solution above is a cheap hack -- it works, but it results in a superfluous feature hanging around inside the font.


agisaak's picture

Having thought some more about this, I'm now finding myself tempted to create a dummy feature at the beginning of my feature list, and then declaring every single lookup used by the font within that lookup. This would overcome FontLab's limitation of tying lookup ordering to feature ordering.

Looking over the opentype feature registry, it would appear that all registered features have names in lowercase. Does anyone know if this is an official naming convention? If so, then assigning my dummy feature an all-caps name would avoid the possibility of future conflicts arising.


Mark Simonson's picture

I don't know the answer to your questions, but you might get more knowledgeable responses on the OpenType discussion list. To join, just send an email to

Syndicate content Syndicate content