C2sc Small Cap OT feature only working with numbers / naming for small caps

I’ve run into an issue where the c2sc OpenType feature only functions (actually takes effect in applications like Adobe inDesign & illustrator) with numerals but no capital letters.

Currently, I have one set of small cap glyphs named using the “lowercaseletter.sc” (for example: a.sc NOT A.sc) convention as it seems to be recommended across a number of forum posts (I’m aware this seems to be a debated topic and depends on ones intended use for small caps in general).

When exporting, the c2sc feature only takes effect for the small-cap numbers. For example if I type out: “ABC123” the ABC part is left as true capitals while the 123 is changed to the small-cap version as intended.

My goal is to have ALL characters changed to their small-cap equivalent if the OT feature is activated (Example: “HELLO” and “hello” are both changed to use the small-caps).

Is this not possible with one set of small-cap glyphs? Do I need to create “A.sc” as well as “A.sc”? Or do I need a set of “a.smcp” and “A.c2sc” glyphs?

And if duplicate sets of small-cap glyphs are necessary but I want their shapes to be the same, is there a recommended method for setting up a “a.sc=A.sc” relationship without doing it manually one at a time?

There may be a simpler solution than it seems and I be happy to hear any suggestions,

The automatic feature code should give you both substitutions: From lowercase (in smcp) and from uppercase in (c2sc). What version of Glyphs do you have?

That’s what I would expect - and the automatic feature generation isn’t registering any errors making it even more confusing but leading my to believe it might possibly be due to the “lowercase.sc” naming convention?

Using the 3.02 (3057) release - I believe it was from yesterday/earlier today.

Can you show the code in the c2sc feature after you hit the Update button in the lower left?

Do you mean the full list of substitions? It begins with:

sub A by a.sc;
sub Aacute by aacute.sc;

And goes on through the full set of sc characters ending with numerals:

sub eight by eight.sc;
sub nine by nine.sc;

No errors registered.
Is there another bit of code you’re looking for? (Nothing else is visible)

This looks good. The feature is correctly substituting the uppercase to the small cap. How did you test the feature?

Exported to the Adobe Fonts folder and tested in both InDesign and Illustrator - you can see in this screenshot what the final result is:

The top row has no OT features activate and the bottom row is the same text with OT features on.

@GeorgSeifert Any suggestions on how to troubleshoot the issue?

Thanks for taking a look.

In the Adobe app are you setting the text to “small caps” or “all small caps”?

I wasn’t aware there was a difference… I have the OpenType features active and just activated the Small Caps feature accessed through the character panel. Screenshot below.


Are there other settings needed?

I was thinking of InDesign which distinguishes between “Small Caps” and “OpenType > All Small Caps.” Not sure about whether Illustrator has a similar distinction.

Incredible! You’re exactly right - the All Small Caps in InDesign works! But it’s the only way I can find to activate the c2sc feature properly.

So it seems to be an issue with Illustrator not offering a clear way to activate the “All Small Caps” feature - I’ll have to do some research to get to the bottom of it.

EDIT: After doing some research, it seems that, at this moment, InDesign is the only adobe program to support the All Caps to Small Caps OpenType feature fully. So for the time being, entering the glyphs you want to be used as small caps as traditional lower case glyphs is the best solution as the standard smcp OT feature works fiine.

If anyone finds a different solution please let me know!

1 Like

How would you code when you have three small cap OT feature options?

Affinity apps have
Caps to Small Caps
Small Caps
All Small Caps

Currently .c2sc sorts change when you select Caps to Small Caps and All Small Caps.


Screenshot 2021-02-15 at 11.07.51

I am pretty sure these tree activate:

  • Caps to Small Caps → c2sc
  • Small Caps → smcp
  • All Small Caps → c2sc & smcp

The question is where you put the SC figures and SC punctuation. I tend to put them in c2sc. You can force it with a .c2sc suffix.

I agree.
I’m not sure what the user expectation of ‘Caps to Small Caps’ is as this isn’t used (listed) in other applications (not that I’m aware of). It’s always been Small Caps and All Small Caps.

I guess I can see a potential use for both cap and lowercase being small caps but not the surrounding sorts (bracket, brace, parenthesis, question, exclam etc.)

But, then a feature would be needed as is but for small cap sorts . . .

You can do it with a GREP style in InDesign. But you are right, the use case for only c2sc are limited. FWIW, I happen to know a designer in Austria who loves doing exactly that: turning only the caps into SC.

:slight_smile: !

Apple’s apps (such as Pages, Number, and Keynote) as well as other Mac apps that use Apple’s typography framework Core Text to its fullest (e.g. OmniGraffle) are able to toggle small-caps individually for upper- and lower-case.

If a font offers Petite caps (c2pc for uppercase and pcap for lowercase) those are also accessible:

If you offer web-fonts, those are also controllable with CSS on the OpenType level such that you can pick just c2sc and not smcp. fontspec in the TeX world offers similar control.

Just playing devil’s advocate here @FlorianPircher – so how does a user understand what to select in order to change cap height sorts to small cap height? There is no Small Upper Case :slight_smile:

or suggested case changing for sorts
– under Lower Case options / No change / Small Capitals / Small Captial Sorts

or better

Case- Sensitive Layout
– could have Small Capital Forms

In the end I guess it doesn’t matter – it’s just not logical

I agree the Affinity controls present a more intuitive interface to the smarts of a font.

This is part of a broader issue in font development: lacking standardization. Does c2sc change lining figure to small-caps figures or not? Different fonts do different things which makes it difficult for an application to present a unified interface for all fonts.

You can see this in the Affinity app where the “All Caps” option is set in italics to indicate that this is not functionality provided by the font but by the app guessing which glyphs should be replaced by which other glyphs to display all-caps text. This can go wrong – Affinity’s App Caps option replaces the infamous /germandbls by /S/S even if the font has a /Germandbls and the font has no control over this functionality.

That part makes sense to me: I want to change the upper case letter to small caps so I expand the section entitled “Upper Case” and select “Small Capitals”. Maybe this makes sense to me since I used in the past already, maybe different minds take different paths to find the option they are looking for. A universally intuitive interface is often difficult to achieve ;‌)

1 Like