Switching active _cap component across entire font

Say I have two different cap components that I’d like to test, export, or otherwise switch. Instead of having to alter the currently active _cap, create a new master with the different _cap component, or create a new font altogether which uses the different _cap component, I’d like to be able to simply switch which _cap component is active for each active instance.

For example, see screenshots below. Is there a way via script or otherwise for me to be able to quickly replace the _cap.VerticalSerif with the _cap.VerticalSerif2 wherever the former is active across the whole font?

You can switch the caps with a ‘Rename Glyphs’ parameter in a second instance.

1 Like

That works really well but is only about 75% of what I was hoping I’d be able to figure out how to do. Is there any way I could switch the switch the _cap out and see the change live as I’m editing without having to export as a separate instance?

I’m imagining how nice it would be to be able to preview and edit multiple versions of a serif for the same stems in a non-destructive way that doesn’t require having to export an instance to review. I’d like to be able to make adjustments while previewing the different serifs on various letterforms without having to export as a separate instance to see what I need to change.

Is that a clear description or am I not making sense? It’s harder than I thought it would be to describe in words what I’m seeing in my head.

To be sure, doing what you said to ‘Rename Glyphs’ parameter in order to create the separate versions of the font as instances is what I would do for the finished export, but I’m wondering if there’s not a way to work with just one master while being able to cycle through active _cap components for each letterform so as to be able to make edits to each cap as is proper for each letterform.

It may help to say that there may be multiple _cap elements in each “style” of font. For example, let’s say I want to create three styles of serif fonts which all share the same master stems. Let’s say it’s “Fontname Chamfered”, “Fontname Wedge”, “Fontname Tuscan”. For each of those serif styles, there would be multiple _cap and _corner components.

Designing each style of component to see how they would work best with the master stems would be easier if I could simply switch which style of cap and corner components were active at any given moment. The reason I wouldn’t just create three separate masters for each serif style is because I want to keep the three styles as part of the same font family. So, the relationship between (and the design process of) the master stems and each of the three serif styles would be pretty dynamic. So, instead of having to keep track of what changes I’m making to the master stems across three masters for each serif style, I’d like to be able to keep the one master constant while being able to see how each serif style relates to the other.

This should be manageable, but you may need an interface for it. This is rather crude, but may get you started – I’ve been using it for quickly swapping out corner components in the early stages of a recent project:

(https://github.com/RobertPratley/Glyphs-Scripts/blob/master/swap_cornerCap.py)

This works on all selected glyphs, by simply replacing the name of the corner/cap hint in the first dropdown with the one in the second where those hints are in the glyph. Depending on how complex your source files and workflow is, you’ll likely have to tailor this to your own needs.

Another thing you could do, is put the alternate cap on an additional layer in the original cap, and choose Use as Master from the gear menu in the Layers palette:

1 Like

I made the instance preview show the `Rename Glyphs´ parameter.

2 Likes