Trouble with instancing Recursive's rvrn monospace character substitutions #3057
-
Hi there! This started out as an issue in Slice that I'll ask here because they seem to use fontTools on the back end. :) I'm trying to create a static version of Recursive set to specific values to be used as a brand asset. Recursive has a mono axis which swaps out certian glyphs with a For reproducing this, the command I used was: Examples of Output IssuesHere's an example of what this looks like in Figma. The top text is stock variable Recursive, the bottom is an instanced version of the font. In Figma everything looks proper! In Affinity Designer however using the same font file, the .mono glyphs are not being used, note the different r & l The monospaced r & l shown above can't be accessed in Affinity Designer through a stylistic set or any other solution because it doesn't support the variable features Recurisve uses to swap the glyphs, even as a static cut. Is there a way to get fontTools to instance the file with the mono characters used for everything by default? Is there utility to including rvrn rules in a static cut of a typeface or should I file this as a bug report? Any help would be much appreciated :) |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
Hm, the spec says:
After instancing, the font is not a variable font anymore, so it seems Affinity is not at fault here when they ignore the As a workaround, you could change the glyph mapping after instancing by “freezing” the |
Beta Was this translation helpful? Give feedback.
-
yes, the instancer simply copies the Feature record of the FeatureVariations that apply at the given location to the default FeatureList so that it will be always activated, with the assumption that a shaping engine will apply 'rvrn' when it seesn one; we don't change the FeatureTag. That could also be an option maybe, e.g. trying to rename "rvrn" to "ccmp" which is similarly applied early in shaping, and ought to be supported even when variations are not.
yes, if that works, I suggest you do that. |
Beta Was this translation helpful? Give feedback.
Hm, the spec says:
After instancing, the font is not a variable font anymore, so it seems Affinity is not at fault here when they ignore the
rvrn
feature.varLib.instancer
perhaps should drop the feature completely and change the affected glyph mapping the thecmap
table.As a workaround, you could change the glyph mapping after instancing by “freezing” the
rvrn
feature, e.g. with pyfeatfreeze.